-1

有一些方法,称为同步,例如:

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

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

我怎样才能在伪代码上做类似的事情:

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

在这里,我想异步调用任务,并等待任何执行结束。(不是全部)。你能帮我吗,没有.net 4的并行任务。

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 回答