小编Jef*_*ier的帖子

并行执行使用异步的循环

我正在编写Windows服务,并且正在寻找一种并行执行多个foreach循环的方法,其中每个循环都调用异步(TAP)方法.我最初尝试了以下代码,但由于Parallel.ForEach和async/await不兼容,因此无效.有谁知道是否有替代方法可以实现这一目标?

Parallel.ForEach(messagesByFromNumber, async messageGroup =>
{
    foreach (var message in messageGroup)
    {
        await message.SendAsync();
    }
});
Run Code Online (Sandbox Code Playgroud)

为了清楚起见,由于SendAsync()的运行方式,foreach循环的每个副本必须按顺序执行; 换句话说,foreach循环不能同时/并行.

c# parallel-processing concurrency asynchronous async-await

4
推荐指数
1
解决办法
1446
查看次数