##// END OF EJS Templates
sync
sync

File last commit:

r0:279591fb4df3 default
r9:c82e0dfbb4dd promises
Show More
AsyncPool.cs
28 lines | 691 B | text/x-csharp | CSharpLexer
using System;
using System.Threading;
namespace Implab {
/// <summary>
/// Класс для распаралеливания задач.
/// </summary>
/// <remarks>
/// Используя данный класс и лямда выражения можно распараллелить
/// вычисления, для этого используется концепция обещаний.
/// </remarks>
public static class AsyncPool {
public static Promise<T> Invoke<T>(Func<T> func) {
var p = new Promise<T>();
ThreadPool.QueueUserWorkItem(param => {
try {
p.Resolve(func());
} catch(Exception e) {
p.Reject(e);
}
});
return p;
}
}
}