私はこの簡単な方法を持っています:
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);
- どちらもスレッドプールスレッドを使用します。
- 両方とも実行が終了するのを待ちます(値を読み取るとき)
- どちらも、呼び出し元に例外を再スローします。
それぞれをいつ使用する必要がありますか?