0

単一のトランザクションに対して 4 つの SOAP Web サービスを呼び出す WCF サービス (4 つのサービスの合計応答時間は 1 分以上) があり、最終的に SQL 2008 データベースにトランザクション ステータスを記録します。私は最初にバックグラウンド ワーカーを使用しましたが、30 コールまでは正常に機能していました。30 コールを超えるボリュームを増やすと、バックグラウンド ワーカー プロセスがキャンセルされます。現在、マルチスレッドの使用を考えています。私の状況に最適なasnycメソッドであるアドバイスを1つ教えてください。

4

1 に答える 1

1

多くの同時操作がある場合は、非同期 IO に切り替えるのが理にかなっています。複数のモデルが利用可能です。最良の方法は、明らかに TPL と組み合わせた async-await です。ご覧になることをお勧めします。

問題が発生した理由BackgroundWorkerは、同期 IO がスレッドを使用し、多くの場合、非決定論的な制限に達するためです。

いずれにせよ、高度な並列処理で問題が発生するため、スレッドベースのソリューションは放棄してください。

于 2013-05-12T11:25:14.407 に答える