如何监控命名管道? FileSystemWatcher
无法监控\\\\.\pipes
。是否有类似于FSW的东西可以用于命名管道?目前我轮询任何新的命名管道创建,但这似乎无效。
我想监视我感兴趣的管道创建。当管道已经创建时,命名管道列表很好。我将弹出我的程序的几个实例,每次弹出时,我希望能够使用命名管道自动连接它而无需轮询。似乎没有这样的机制。
答案 0 :(得分:2)
您无法查看命名管道本身,但您可以等待其他事情。我的解决方案是创建一个事件,然后等待。当服务器程序创建其管道时,它也会发出事件信号。当客户端收到信号时,关闭事件并打开管道。
当您收到管道已关闭并且您需要再次观察它的指示时,请重新打开该事件并等待。
如果您有多个管道,您可能希望为每个管道(EventForPipe-*pipename*
)分别设置一个事件,或者您可能希望有一个事件用于所有管道,并且只需检查每个管道事件得到了信号。
这适用于本地管道,但不适用于远程管道,因为无法发出信号或等待远程事件。如果您必须在另一台计算机上查看管道,则具有管道的计算机也可以具有可用于信令的共享目录。由于可以监视共享目录以进行文件更改,因此可以在创建管道时创建文件。请注意,您仍需要定期轮询(可能每分钟一次)以使此策略生效,因为远程服务器可能无法遵守所有远程文件通知请求。