我将如何构造下面的代码以便调用异步方法?
Parallel.For(0, elevations.Count(), delegate(int i)
{
allSheets.AddRange(await BuildSheetsAsync(userID, elevations[i], includeLabels));
});
最佳答案
Parallel.For()
不适用于 async
方法。如果您不需要限制并行度(即您可以同时执行所有任务),您可以简单地启动所有 Task
然后等待它们完成:
var tasks = Enumerable.Range(0, elevations.Count())
.Select(i => BuildSheetsAsync(userID, elevations[i], includeLabels));
List<Bitmap> allSheets = (await Task.WhenAll(tasks)).SelectMany(x => x).ToList();
关于c# - 如何使用异步方法正确编写 Parallel.For,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19284202/