マルチスレッド サーバーを設計するために従うことができるテンプレート/パターン/ガイドはありますか? グーグル検索でオンラインで非常に役立つものを見つけることができません。
私のプログラムは、TcpListener を使用して接続をリッスンするスレッドを開始します。すべてのクライアント接続は、独自の IClientHandler スレッドによって処理されます。サーバーは clientHandler.HandleClient をデリゲートでラップし、BeginInvoke を呼び出してから、その処理を終了します。
また、リッスン スレッドをきれいにシャットダウンできるようにする必要もあります。これは、オンラインであまり見られないことです。
非同期の BeginAceptTcpClient および EndAcceptTcpClient と組み合わせたロック/AutoResetEvents/スレッド マジックの組み合わせがそこに到達すると想定していますが、ネットワーク コードに関しては、すべて完了しています。したがって、私が従うことができるいくつかのパターンがそこにあると信じなければなりません.そして、私が完璧にできるようには見えない無数のマルチスレッドのコーナーケースに完全に混乱することはありません.
ありがとう。