質問

マルチスレッドサーバーを設計するために従うことができるテンプレート/パターン/ガイドはありますか? Google検索でオンラインでひどく役立つものを見つけることができません。

私のプログラムは、TcpListenerを使用して接続をリッスンするスレッドを開始します。 すべてのクライアント接続は、独自のIClientHandlerスレッドによって処理されます。サーバーはclientHandler.HandleClientをデリゲートでラップし、BeginInvokeを呼び出してから、その処理を終了します。

また、リスニングスレッドをきれいにシャットダウンできるようにする必要がありますが、これは多くのオンラインのサンプルを見つけることができません。

非同期のBeginAceptTcpClientとEndAcceptTcpClientを組み合わせたlock / AutoResetEvents / threading magicの組み合わせがそこに到達すると思いますが、ネットワーキングコードに関しては、すべて完了です。だから私は、私が従うことができるいくつかのパターンがあり、完璧になるとは思えない無数のマルチスレッドコーナーケースに完全に混乱しないように信じなければなりません。

ありがとう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top