-1

次のような同期と呼ばれるメソッドがあります。

tasks.ForEach(p=> Proccess(p));

void Proccess(){
   //do some long running work
}

擬似コードで次のようなことを行うにはどうすればよいですか?

tasks.ForEach(p=> Async(Proccess(p));
WaitForAny();

ここでは、タスクを非同期で呼び出し、実行が終了するのを待ちます(すべてではありません)。.net 4からの並列タスクなしで、u plzは私を助けてくれますか?

4

1 に答える 1

1

を見てみましょうTask.WaitAny

Task[] tasksToWaitFor = new Task[itemsToCall.Length];
foreach (int i = 0; i < itemsToCall.Length; i++)
{
    var itemToCall = itemsToCall[i];
    tasksToWaitFor[i] = Task.Factory.StartNew( () => itemToCall.Call());
}

await Task.WaitAny(tasksToWaitFor);

http://msdn.microsoft.com/en-us/library/dd270672.aspx

于 2012-12-05T04:31:45.117 に答える