Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.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#-作为监视多个目录的windows服务的文件监视程序_C#_Windows_Service_Filesystemwatcher_Directory - Fatal编程技术网

C#-作为监视多个目录的windows服务的文件监视程序

C#-作为监视多个目录的windows服务的文件监视程序,c#,windows,service,filesystemwatcher,directory,C#,Windows,Service,Filesystemwatcher,Directory,我有个问题似乎找不到解决办法。我正在使用FileSystemWatcher用C#编写一个file watcher Windows服务。我想看多个独立的目录,我有要看的目录和xml文件中的一些其他设置。该程序读入xml,创建适当数量的文件系统监视程序,并将这些系统监视程序存储在一个字典中,其中包含一个随机生成的id号(作为键)。我遇到的问题是,只有第一个FileSystemWatcher响应正在创建/删除/更新的文件。我知道其他的都是因为词条在字典里而创建的。我知道EnableRaisingEve

我有个问题似乎找不到解决办法。我正在使用FileSystemWatcher用C#编写一个file watcher Windows服务。我想看多个独立的目录,我有要看的目录和xml文件中的一些其他设置。该程序读入xml,创建适当数量的文件系统监视程序,并将这些系统监视程序存储在一个字典中,其中包含一个随机生成的id号(作为键)。我遇到的问题是,只有第一个FileSystemWatcher响应正在创建/删除/更新的文件。我知道其他的都是因为词条在字典里而创建的。我知道EnableRaisingEvents=true,因为所有FileSystemWatcher都是通过循环以相同的方式创建的。我不知道如何让多个文件监视程序正常工作,如果可能的话,我希望避免线程。如果有人有任何想法或资源可以看,那将不胜感激。

我建议您实例化某种线程池或任务工厂,因为filewatcher在一个线程中只能查看一个文件

然而,这篇文章有一个很好的例子:


希望这有助于

如果您不显示任何代码,很难看出可能有什么问题……这个概念很有效。我刚刚编写了一个控制台应用程序,可以成功地侦听两个目录。(也许你一次又一次地配置了一个观察者,但是散列中有很多观察者)PS-你说“我知道”的理由很弱。您只知道通过调试器或跟踪输出可以看到什么是真的(甚至只有在行星没有错排的情况下),您可以尝试在codeproject查看此示例,