BinaryReader.ReadByte() 不超时



我有一个互联网流,我正在创建一个阅读器

var reader = new BinaryReader(stream);

之后,我正在读取搜索"sync word"的字节

if (reader.ReadByte() != magic[i++])

但有时我有ReadByte()的问题。我期望如果阅读器不能从流中读取字节,它将抛出异常,但它没有抛出任何东西。(服务器没有关闭,只是不提供字节)。

所以我的问题是-如何超时这个方法?我可以使用TPL与CancellationToken,但不明白如何取消方法ReadByte时需要。

既然我们现在知道这是来自TcpClient,我建议在请求流之前设置TcpClient.ReceiveTimeout。这应该使读调用适当地超时。

(另一方面,我不认为TcpClient在WP7上可用,所以我不确定你是如何使用它的…)

相关内容

  • 没有找到相关文章

最新更新