2

Amazon SDB内の多数のレコードを削除するには、多くのWebサービス呼び出しを送信する必要があります(残念ながら、現在、行を削除できるのは一度に1つだけです)。

非同期WebRequestを使用しないAmazonのSDBc#ライブラリを使用しています。

現在、ThreadPool.QueueUserWorkItemを使用して一連の呼び出しをキューに入れています(一連の接続を許可するようにconnectionManagement maxconnectionを構成しました)。これはうまく機能します。要求が送信されると、ブロックされ、別の要求が行われます。

これは、この目標を達成するための間違った方法ですか?非同期デリゲートを使用してBeginInvokeとEndInvokeを実行する必要がありますか?

4

2 に答える 2

5

いくつかのジョブ(値を直接返さない)をキューに入れる必要がある場合は、を使用してくださいThreadPool.QueueUserWorkItem。それは速いです。違いは他の質問(そしてそこにあるいくつかの素晴らしいブログエントリ)でカバーされています。

于 2009-08-13T17:56:09.480 に答える
2

完全に非同期にするには、BeginGetRequestStream / BeginGetResponse(私がお勧めします)を使用して、Amazonライブラリを放棄し、独自のライブラリをロールする必要があります。同期WebRequestを使用する場合は、QueueUserWorkItemを使用してください。

于 2009-08-13T17:59:29.300 に答える