异步执行等待任何

时间:2012-12-05 04:23:35

标签: .net

有一些方法,称为同步:

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

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

我怎样才能在伪代码上做点什么:

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

这里我想调用任务异步,并等待任何执行结束。(并非所有)。 你可以帮助我,没有来自.net 4的并行任务。

1 个答案:

答案 0 :(得分: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

相关问题