2012-01-05 7 views
2

一部のデータ更新でWebサービス呼び出しを行い、別のデータベースを同期します。このWebサービスコールは、応答時間がかかります。それをスレッドに追加すると助けになりますか?これを行うことの落とし穴? Webサービス呼び出しが失敗した場合、失敗し、それが失敗します。それは火のようで、電話を忘れる。別のスレッドでASP.NET Webサービスを呼び出す

+0

マイク..クライアントはWindowsアプリケーションですか、Webアプリケーションですか? Windowsアプリケーションの場合は、安全に非同期呼び出しを行うことができます。これはスレッディングよりも安全です。しかし、Web Appsの場合は、代わりにAjaxを使用することをお勧めします。 – Bhuvan

+0

これはWebアプリケーションのポストバックまたはajaxです。 –

答えて

2

非同期コールバックを使用して非同期Webサービスコールを使用して、メインスレッドのブロックを防ぐことができます。 Webサービスへの非同期呼び出しを行うことにより

は、あなたが応答するWebサービスを待っている間、呼び出し元のスレッドを使用し に続けることができます。 これは、ユーザーがアプリケーション と対話し続けることができることを意味し、Webサービスへのアクセスが進行中にロックされることはありません。 MSDNから

:ウェブアプリから(別のスレッドで呼び出しを行うことを含む)、非同期Webサービス呼び出しを使用して反対Making Asynchronous Web Service Calls

2

ユーザーインターフェイスをハングするのに十分な時間がかかる場合は、別のスレッドで呼び出すことをお勧めします。

2

Tudorの答えに加えて、私はあなたが.NET 4.0.fromタスク並列ライブラリから新しいTaskクラスを使用することから始められることをお勧めします。例:

Task backgroundProcess = new Task(() => 
{ 
    service.CallMethod(); 
}); 
+1

+1の 'タスク'の提案 –

0

私は強くアドバイス。代わりに、Ajaxのような別のアプローチを使用して、このWebサービス呼び出しをAjax Callインスタンスから作成します。スレッドと非同期呼び出しを処理するWebコンテキストには簡単なアプローチはありません。

関連する問題