标题是什么,真的。
我有一个命名管道。我想尝试读取,但如果在超时后它没有成功,我还是希望以后能够使用管道。
这可能与NamedPipeServerStream
有关,还是我必须重新考虑整个方法?
到目前为止,我发现取消BeginRead
的唯一方法是处理管道。
答案 0 :(得分:0)
为了记录,我找不到方法。我仍然通过处理流来取消读取时间过长的读取,这意味着之后不能再使用它。
答案 1 :(得分:-2)
BeginRead
会返回IAsyncResult
,并在课程范围内捕获此内容。
然后在回调方法调用EndRead
中创建一个具有所需超时的计时器,并传递从初始IAsyncResult
返回的BeginRead
。
编辑: 我一直在做一些研究,我找到的最好的解决方案是处理ServerStream(它本身处理了Pipe)。