私は SocketAsyncEventArgs を使用して、何百もの機器 (ほとんどは GPRS 経由) と通信しています。ドキュメントには、タイムアウト オプション (つまりSocketOptionName.SendTimeout ) が非同期通信では機能しないと記載されているため、応答を停止するものもあり、操作をタイムアウトにする方法がないようです。
Send/Receive/ConnectAsync の実行時にタイムアウトをチェックする方法を探しています。スレッドをブロックしてはいけません (したがって、someMonitor.WaitOne(SomeTimeoutValue) を呼び出しても実行されません)。また、操作ごとにタイマー インスタンスを作成したくありません (機器の数が確実に増加するため)。
これに関するヒントはありますか?