Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中命名管道的监控#_C# - Fatal编程技术网

C# C语言中命名管道的监控#

C# C语言中命名管道的监控#,c#,C#,如何监视命名管道FileSystemWatcher无法监视\\\\\\.\pipes。是否有类似于FSW的东西可用于命名管道?目前,我对任何新命名管道创建进行投票,但这似乎有点无效 我想监控我感兴趣的管道的创建。已创建管道时,命名管道的列表是良好的。我将有几个实例我的程序弹出,每次它弹出,我想能够连接它使用命名管道自动无需投票。似乎没有这样的机制可用。您不能监视命名管道本身,但可以等待其他事情。我的解决方案是创建一个事件,然后等待它。当服务器程序创建其管道时,它也会向事件发送信号。当客户端收到信

如何监视命名管道
FileSystemWatcher
无法监视
\\\\\\.\pipes
。是否有类似于FSW的东西可用于命名管道?目前,我对任何新命名管道创建进行投票,但这似乎有点无效


我想监控我感兴趣的管道的创建。已创建管道时,命名管道的列表是良好的。我将有几个实例我的程序弹出,每次它弹出,我想能够连接它使用命名管道自动无需投票。似乎没有这样的机制可用。

您不能监视命名管道本身,但可以等待其他事情。我的解决方案是创建一个事件,然后等待它。当服务器程序创建其管道时,它也会向事件发送信号。当客户端收到信号时,关闭事件并打开管道

当您收到管道已关闭的指示并且需要再次监视时,请重新打开事件并等待

如果有多个管道,则可能需要为每个管道单独设置一个事件(
EventForPipe-*pipename*
),或者需要为所有管道设置一个事件,并在发出事件信号时检查每个管道

这将适用于本地管道,但不适用于远程管道,因为无法发送信号或等待远程事件。如果您必须监视另一台计算机上的管道,则具有该管道的计算机还可以具有可用于发送信号的共享目录。由于可以监视共享目录中的文件更改,因此可以在创建管道时创建文件。请注意,您仍然需要定期轮询(可能每分钟轮询一次)此策略才能正常工作,因为远程服务器可能无法满足所有远程文件通知请求