是否可以在不关闭管道的情况下取消NamedPipeServerStream上的BeginRead?

时间:2010-05-13 21:41:29

标签: .net

标题是什么,真的。

我有一个命名管道。我想尝试读取,但如果在超时后它没有成功,我还是希望以后能够使用管道。

这可能与NamedPipeServerStream有关,还是我必须重新考虑整个方法?

到目前为止,我发现取消BeginRead的唯一方法是处理管道。

2 个答案:

答案 0 :(得分:0)

为了记录,我找不到方法。我仍然通过处理流来取消读取时间过长的读取,这意味着之后不能再使用它。

答案 1 :(得分:-2)

BeginRead会返回IAsyncResult,并在课程范围内捕获此内容。

然后在回调方法调用EndRead中创建一个具有所需超时的计时器,并传递从初始IAsyncResult返回的BeginRead

编辑: 我一直在做一些研究,我找到的最好的解决方案是处理ServerStream(它本身处理了Pipe)。