Dot-Net
等待 UDPClient.ReceiveAsync 超時
我正在使用如下所示的 UDPClient
dim c = New UDPClient(port) client.CLient.ReceiveTimeout = 1 await client.ReceiveAsync()但是,即使我設置了超時,等待也不會終止或拋出。這是正常行為嗎?
Socket.ReceiveTimeout 的 MSDN 庫文章中明確提到了它:
獲取或設置一個值,該值指定同步Receive 呼叫將超時的時間量。
重點補充。當您使用 ReceiveAsync() 時,您正在執行與同步接收相反的操作。解決方法是使用 System.Timers.Timer 在呼叫之前啟動並在之後停止。關閉 Elapsed 事件處理程序中的套接字,以便 ReceiveAsync() 方法以 ObjectDisposed 異常終止。