TPL

2016-04-25 9 views
0

によって行われたすべてのタスクがコールバック関数を呼び出すと、task1、task2、task3のようなすべてのタスクが完了したことを通知するコールバック関数が呼び出されます。おかげTPL

enter image description here

+0

[タスクの.ContinueWithを使用するための適切な方法]の可能な重複(http://stackoverflow.com/questions/11904821/proper-way-to-use-continuewith-for -tier) – Igor

+0

@Igorはあなたが 'ContinueWith()'を使うべきだと言っていますか?基本的に私は一度に複数の関数を起動したいが、すべての関数の実行が完了したときに起動するコールバック関数が必要だ。 –

+0

これはまさに 'ContinueWith'のためのものです。 – Igor

答えて

2

あなたはTask.WhenAllTask.ContinueWithを使用するか、WaitAllの呼び出し、次を実行するコードとTask.WaitAllを使用することができます。

var executingTask = Task.WhenAll(task1, task2, task3).ContinueWith((antecedent) =>{/*your code*/}); 

詳細については、Task.ContinueWith documentationを参照してください。

OR

// WaitAll blocks until all tasks are complete 
Task.WaitAll(task1, task2, task3); 
/*your code on the following lines(s) which will run after task1,task2,task3 are complete*/ 
+0

先行者は何ですか? –

+0

@MonojitSarkar - '先行' - '他の前に存在するか論理的に先行する事象または出来事 '。 'task1'、' task2'、 'task3'の実行を表す引数として、完了したタスクを取得します。 – Igor

+0

非常に残念なことに、前例の使用をまだクリアしていません。別の方法でそれを説明できますか? –