C#:启动多个连接时异步委托与 ThreadPool.QueueUserWorkItem

puf*_*pio 2 c# delegates asynchronous amazon-web-services threadpool

我必须发送许多 Web 服务调用来删除 Amazon SDB 中的一堆记录(不幸的是,目前一次只能删除一个行)。

我正在使用 Amazon 的 SDB c# 库,它不使用异步 WebRequests。

目前,我使用 ThreadPool.QueueUserWorkItem 对一堆调用进行排队(我配置了我的连接管理 maxconnection 以允许一堆连接),这效果很好......当请求发出时,它会阻塞并发出另一个请求。

这是实现这一目标的错误方法吗?我应该使用异步委托并执行 BeginInvoke 和 EndInvoke 吗?

Meh*_*ari 5

如果您只需要排队一些作业(不直接返回值),请选择ThreadPool.QueueUserWorkItem. 速度更快了。其他问题(以及一些很棒的博客文章)涵盖了这种差异。