我正在使用SocketAsyncEventArgs与数百个设备进行通信(其中大部分通过GPRS)。有时,其中一些停止响应,似乎我无法设置操作超时时间。因为文档说明异步通信的超时选项(例如SocketOptionName.SendTimeout)不起作用。
我正在寻找一种在执行Send/Receive/ConnectAsync时检查超时的方法。它不应该阻塞线程(因此,调用someMonitor.WaitOne(SomeTimeoutValue)不会起作用),而且我不希望为每个操作创建一个计时器实例(因为设备数量肯定会增加)。
你有什么建议吗?