【发布时间】:2015-10-12 17:55:26
【问题描述】:
我有一个网站需要调用网络服务 1 到 10,000 次。目前这是在 foreach 循环中完成的,如下所示:
List<Address> addresses
List<Response> responses = new List<Response>();
foreach(Address address in addresses){
//Setup web service call
//Call web service
//Parse response into object for front end
responses.Add(CustomReponseObject)
}
// The responses object is then just serialized and set to the front end client to parse through.
当前的方法不是线程化的,我想加快它的速度。不确定我应该使用托管线程还是使用新的 Async Await 关键字。
我开始了这个过程,然后挂断了新的 Async 关键字是否可以工作,使用响应列表上的锁定,或者是否可能需要类似 ConcurrentBag 的东西?我已经阅读了所有三个选项,但不确定哪个选项最适合我的用例?
【问题讨论】:
-
您能否举例说明
async如何替代ConcurrentBag? (请注意,通常“最佳方法”问题是基于意见/过于宽泛而没有具体目标。您的帖子中目前没有任何内容表明您当前的方法不可接受的原因)
标签: c# multithreading collections