我有这个简单的方法:
static int Work (string s) { return s.Length; }
我可以运行它:
Task<string> task = Task.Factory.StartNew<int> (() => Work ("lalala") );
...
int result = task.Result;
或与此:
Func<string, int> method = Work;
IAsyncResult myIasync= method.BeginInvoke ("lalala", null, null);
...
int result = method.EndInvoke (myIasync);
- 它们都使用线程池线程。
- 无论等待执行完成(读取值时)
- 双方再次引发任何异常给调用者。
当我应该使用的呢?