Jer*_*rry 4 c# parallel-processing task
如何修改以下代码并使其同时运行多个任务?
foreach (SyndicationItem item in CurrentFeed.Items)
{
if (m_bDownloadInterrupted)
break;
await Task.Run( async () =>
{
// do some downloading and processing work here
await DoSomethingAsync();
}
}
Run Code Online (Sandbox Code Playgroud)
我还需要中断并尽可能地停止这个过程.因为我的DoSomethingAsync方法读取标记(一个全局布尔值)来停止进程.
谢谢
不,这不会同时运行它们 - 你在等待每一个完成之前完成下一个.
您可以将每个Task.Run调用的结果放入一个集合中,然后在启动它们之后等待.Task.WhenAll
(这是一个耻辱Parallel.ForEach不返回Task,你可以等待,有可能是一个更异步的版本各地...)