Mercurial > pub > ImplabNet
diff Implab/Parallels/AsyncPool.cs @ 25:9bf5b23650c9
refactoring
author | cin |
---|---|
date | Thu, 06 Feb 2014 01:08:59 +0400 |
parents | 5a4b735ba669 |
children | 2880242f987a |
line wrap: on
line diff
--- a/Implab/Parallels/AsyncPool.cs Thu Nov 14 01:15:07 2013 +0400 +++ b/Implab/Parallels/AsyncPool.cs Thu Feb 06 01:08:59 2014 +0400 @@ -1,28 +1,28 @@ -using System; -using System.Threading; - -namespace Implab.Parallels { - /// <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 { +using System; +using System.Threading; + +namespace Implab.Parallels { + /// <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; + } catch(Exception e) { + p.Reject(e); + } + }); + + return p; } public static Promise<T> InvokeNewThread<T>(Func<T> func) { @@ -39,6 +39,6 @@ worker.Start(); return p; - } - } -} + } + } +}