有一些方法,称为同步:
tasks.ForEach(p=> Proccess(p));
void Proccess(){
//do some long running work
}
我怎样才能在伪代码上做点什么:
tasks.ForEach(p=> Async(Proccess(p));
WaitForAny();
这里我想调用任务异步,并等待任何执行结束。(并非所有)。 你可以帮助我,没有来自.net 4的并行任务。
答案 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);