我有这个简单的方法:
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);
- 它们都使用线程池线程。
- 在读取值时,它们都等待执行完成。
- 它们都会将任何异常重新抛出给调用者。
我应该在什么时候使用它们?