我不得不发送许多web服务调用来删除Amazon SDB中的一堆记录(不幸的是,目前一次只能删除一行)。
我使用的是亚马逊的SDB c#库,它不使用异步WebRequests。
目前,我使用ThreadPool.QueueUserWorkItem来排队一堆调用(我配置了我的connectionManagement最大连接以允许一堆连接),这是可行的well..as请求被发送出去,它阻塞,并发出另一个请求。
这是不是实现这个目标的错误方式?我是否应该使用异步委托并执行BeginInvoke和EndInvoke?
发布于 2009-08-13 17:56:09
如果您只需要对一些作业进行排队(不直接返回值),那么使用ThreadPool.QueueUserWorkItem。它更快。在other questions (以及一些很棒的博客文章)中介绍了它们之间的区别。
发布于 2009-08-13 17:59:29
真正的异步需要放弃Amazon库,使用BeginGetRequestStream/BeginGetResponse (我推荐)使用自己的库。如果你坚持使用同步WebRequests,那么就使用QueueUserWorkItem。
https://stackoverflow.com/questions/1273587
复制相似问题