我正在尝试从NetworkStream中为ReadAsync方法添加一个“超时”。
我想在特定时间后取消ReadAsync。
例如:
ctsTimeout.CancelAfter(10);
int bytesRead = await nsStream.ReadAsync(newArr, 0, newArr.Length, ctsTimeout.Token);但该方法仍在等待来自服务器的响应。
是否可以在读取状态下取消此方法?
发布于 2016-11-17 22:46:55
NetworkStream (或继承的Stream )并不真正支持取消。当然,ReadAsync方法接受取消令牌;但这实际上只是让您知道在读取完成之前是否请求了取消。ReadAsync实际上只是包装了BeginRead和EndRead--它们不提供取消读取操作的方法。
要真正取消读取,您需要释放或Close NetworkStream对象。
https://stackoverflow.com/questions/40656352
复制相似问题