2009-08-13 67 views
2

我必須發送很多Web服務調用才能刪除Amazon SDB中的一堆記錄(不幸的是,行只能在當前時間刪除一個)。C#:異步委託與ThreadPool.QueueUserWorkItem啓動多個連接時

我正在使用亞馬遜的SDB c#庫,它不使用異步WebRequests。

目前我使用ThreadPool.QueueUserWorkItem來排隊了一堆電話(我配置我connectionManagement MAXCONNECTION允許一堆連接) 這個作品well..as請求被髮送出去,它會阻止和其他請求製作。

這是實現此目標的錯誤方法嗎?我應該使用異步委託並執行BeginInvoke和EndInvoke嗎?

回答

4

如果您只需要排隊一些作業(不直接返回值),請使用ThreadPool.QueueUserWorkItem。速度更快。所不同的是other questions覆蓋(和一些偉大的博客文章在那裏。)

2

去真實地異步需要放棄亞馬遜圖書館和推出自己的,使用BeginGetRequestStream/BeginGetResponse(這我會建議)。如果您堅持使用同步WebRequests,請使用QueueUserWorkItem。