質問の数、フォーラムの投稿などに基づくと、BCLのTcpClient / NetworkStream実装には、IO操作をキャンセルするための適切なサポートが不足しているようです。.NET 4.5に非同期メソッドが追加されたことで、このキャンセルの欠如(または適切なタイムアウトサポート)により、IOの実行中にCancellationTokenの監視を拒否するタスクをキャンセルすることがさらに複雑になる(ほぼ不可能になる)ため、事態はさらに苛立たしくなります。 。
ネットワーク操作を監視し、問題が発生しているように見える場合は基になるストリームを閉じるために、追加のスレッドを起動する多くの実装を見てきました。非同期操作を使用してこれらのリソースを節約しようとしている世界では、これは非常に汚い感じがします。
ネットワークIO操作を効率的にキャンセル/タイムアウトすることに関するガイダンスの方向、または実際に機能する堅牢なサードパーティの実装に向けて、誰かが私を導くことができますか?