【发布时间】:2013-12-09 18:40:06
【问题描述】:
最近,伦敦 NDC 的 Jon Skeet 谈到了 C# 5 async/await,并提出了“按完成排序”的异步任务列表。一个链接http://msmvps.com/blogs/jon_skeet/archive/2012/01/16/eduasync-part-19-ordering-by-completion-ahead-of-time.aspx
我有点困惑,或者我应该说我不确定什么时候会更适合使用这种技术。
我无法理解此示例与以下示例之间的区别
var bag = new ConcurrentBag<object>();
Parallel.ForEach(myCollection, async item =>
{
// some pre stuff
var response = await GetData(item);
bag.Add(response);
// some post stuff
}
或 ForEachAsync 由 Stephen Toub 解释 - http://blogs.msdn.com/b/pfxteam/archive/2012/03/05/10278165.aspx
编辑: 发现 Stephen Toub 的 blog post 解释了“按完成排序”“在完成任务时进行处理”。值得阅读。阅读本文后,我可以清楚地了解它的工作原理以及何时使用此技术。
【问题讨论】:
-
Parallel.ForEach已经用于多线程。
标签: c# async-await c#-5.0