一部のオブジェクトの初期化を非同期で実行したいのですが、一部のオブジェクトは他のオブジェクトの初期化に依存しています。そして、アプリケーションの残りの部分を続行する前に、すべてのオブジェクトを初期化する必要があります。
タスクで Wait() を呼び出し、後で再度 Wait() を呼び出すことは可能ですか? または、私の例のように、それが含まれているコレクションで WaitAll() を呼び出すことはできますか?
Dictionary<String, Task> taskdict = new Dictionary<String, Task>( );
taskdict.Add( "Task1",
Task.Factory.StartNew( ( ) => {
//Do stuff
} ) );
taskdict.Add( "Task2",
Task.Factory.StartNew( ( ) => {
taskdict[ "Task1" ].Wait( );
//Do stuff
} ) );
try {
Task.WaitAll( taskdict.Values.Convert<Task[ ]>( ) );
}
それとも、その 2 番目の Wait() / WaitAll() は失敗しますか?