C# で TcpClient クラスを使用しています。
新しい tcp 接続要求があるたびに、通常はそれを処理する新しいスレッドを作成します。また、メイン スレッドがこれらのハンドラ スレッドをいつでも終了できるようにする必要があります。
これらの各ハンドラ スレッドに対する私の解決策は次のとおりです。
1 Check NetworkStream's DataAvailable method
1.1 If new data available then read and process new data
1.2 If end of stream then self terminate
2 Check for terminate signal from main thread
2.1 If terminate signal activated then self terminate
3 Goto 1.
このポーリング アプローチの問題点は、これらのハンドラ スレッドのすべてが大量のプロセッサ リソースを占有することであり、これらのスレッドが膨大な数にある場合は特にそうです。これにより、非常に非効率になります。
これを行うより良い方法はありますか?