最近,我看到了与Parallel.ForEach相关的几个SO线程与异步lambda混合在一起,但是所有提出的答案都是某种解决方法。
有什么办法可以写:
List<int> list = new List<int>[]();
Parallel.ForEach(arrayValues, async (item) =>
{
var x = await LongRunningIoOperationAsync(item);
list.Add(x);
});
我如何确保列表将包含每个迭代中使用lambda执行的所有迭代中的所有项目?
Parallel.ForEach通常如何与异步lambda一起使用,如果它等待命中,它将把其线程移交给下一个迭代?
我假设ParallelLoopResult IsCompleted字段不合适,因为在执行所有迭代时,无论其实际的lambda作业是否完成,它都将返回true?
最近,我看到了与Parallel.ForEach相关的几个SO线程与异步lambda混合在一起,但是所有提出的答案都是某种解决方法。
您不需要Parallel.For/ForEach
,您只需await