PollingDuplexシーンリオの一部としてバックグラウンドスレッドを開始するための最良のアプローチは何ですか
-
09-10-2019 - |
質問
クライアントアプリケーションは、サーバー上のイベントを監視するためのリクエストを登録します。クライアントのコールバックは辞書に追加されます(そして、定期的にクライアントによって更新されました)
サーバーは、イベントのMSMQプライベートキューを監視し、サブスクライバーが登録したイベントが発生した場合、サーバーはクライアントを呼び出します。
これは、MSMQを待ってから登録されたクライアントアプリを呼び出すことができる背景スレッドを起動することにかかっています。この背景スレッドを起動するための最良の方法は何ですか?私の最初のスルーは、Global.asaxファイルのApplication_startイベントで単純に起動することでした。クリス・アンダーソンの答えで説明したように、これには多くの落とし穴があります これはとても質問です さらに、これは、アプリのデバッグを停止した後、開発者マシンに残るスレッドの落とし穴です。
おそらく、保証されている完全に異なるアプローチがあるかもしれません。そのような提案も歓迎されます。
解決
最初のクライアントが登録されたときに背景スレッドを起動し、最後のクライアントの未開拓者またはタイムズアウト時に停止するように信号を送信してみませんか?
所属していません StackOverflow