相关疑难解决方法(0)

异步网络操作永远不会完成

我有几个异步网络操作返回可能永远不会完成的任务:

  1. UdpClient.ReceiveAsync 不接受 CancellationToken
  2. TcpClient.GetStream返回NetworkStream不尊重CancellationTokenon的Stream.ReadAsync(仅在操作开始时检查取消)

两者都在等待可能永远不会发生的消息(例如因丢包或没有响应).这意味着我有永远不会完成的幻像任务,永远不会运行的延续和使用套接字.我知道我可以使用TimeoutAfter,但这只能解决延续问题.

那我该怎么办?

c# networking idisposable async-await cancellation-token

6
推荐指数
1
解决办法
5435
查看次数