【发布时间】:2013-02-22 19:18:26
【问题描述】:
通过超时取消 TcpClient ReadAsync 操作并在 .NET 4.5 中捕获此超时事件的正确方法是什么?
TcpClient.ReadTimeout 似乎应用于同步只读。
更新:
尝试应用这里描述的方法Cancelling an Asynchronous Operation
var buffer = new byte[4096];
CancellationTokenSource cts = new CancellationTokenSource(5000);
int amountRead = await tcpClientStream.ReadAsync(buffer, 0, 4096, cts.Token);
但它永远不会因超时而取消。有什么事吗?
【问题讨论】:
-
我在
TcpClient上没有看到ReadAsync。 -
对不起,这是 NetworkStream.ReadAsync