0

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

var reader = new BinaryReader(stream);

之后我正在读取字节以搜索“同步字”

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

但有时我有一个问题ReadByte()。我预计如果阅读器无法从流中读取字节,它会抛出异常,但不会抛出任何东西。(服务器没有关闭,只是不提供字节)。

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

4

1 回答 1

3

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

(另一方面,我认为TcpClientWP7 上没有,所以我不确定你是如何使用它的......)

于 2013-01-17T11:39:03.730 回答