Mercurial > pub > ImplabNet
view Implab/AsyncPool.cs @ 1:6fb3b01ee971
Added utility class for safe disposing methods.
Added event fireing while promise is cancelled (needs some more work)
author | cin |
---|---|
date | Tue, 27 Aug 2013 08:28:42 +0400 |
parents | 279591fb4df3 |
children |
line wrap: on
line source
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; } } }