我检查了类似的问题,但我的问题似乎更简单明了:服务器和客户端之间存在命名管道。
客户端监听服务器发送的消息(while 循环)。
我如何检测到服务器关闭了管道,所以我也轻轻地关闭了客户端?
我看到了 3 个选项:
- 放入监听客户端循环
pipeHhandle.IsClosed
的条件while
- 捕获
ObjectDisposedException
希望它只会捕获通信结束而不捕获其他故障(此异常不给出异常errorCode
)。 - 捕获
System.ComponentModel.Win32Exception
并检查异常errorCode
(-2147467259)。在捕获代码中放置“if”是否标准?
尽管程序(没有catch)确实抛出了一个编号为109或-2147467259的异常,但我没有找到“结束管道”的任何特定异常,我很困惑。
谢谢你的帮助。