C# 文件系统监视程序性能

C# 文件系统监视程序性能,c#,windows,C#,Windows,我需要在创建某个文件时触发一个事件。但该文件是在临时文件夹中创建的,该文件夹位于使用该文件创建的目录中。因此,我必须设置对所有子目录的整个Temp-dir的监控,我担心性能影响 我知道文件的确切名称和路径,只需跟踪其创建。每秒轮询File.Exists一次或设置FileSystemWatcher更好吗?也许有一种方法可以禁用对除文件创建之外的所有事件的监视,并且可能比轮询更快 我不能真正测试它,因为临时目录的使用模式是不可预测的。我不明白。为什么要设置“监视”整个临时目录?而不仅仅是文件所在的文

我需要在创建某个文件时触发一个事件。但该文件是在临时文件夹中创建的,该文件夹位于使用该文件创建的目录中。因此,我必须设置对所有子目录的整个Temp-dir的监控,我担心性能影响

我知道文件的确切名称和路径,只需跟踪其创建。每秒轮询
File.Exists
一次或设置
FileSystemWatcher
更好吗?也许有一种方法可以禁用对除文件创建之外的所有事件的监视,并且可能比轮询更快


我不能真正测试它,因为临时目录的使用模式是不可预测的。

我不明白。为什么要设置“监视”整个临时目录?而不仅仅是文件所在的文件夹

我知道文件的确切名称和路径

谷歌的点点滴滴:

这可能比每x个时间轮询一次性能更好

但是,尽管如此,我已经读到,甚至发生在我身上,FSW并不是100%可靠的

因此,我会想到两种方法:

1) 混合使用FSW、轮询和用户干预(即刷新按钮)

2) 获取一些优质药物并阅读以下内容:系统微过滤器驱动程序

编辑:新链接:
还有一个很好的代码示例:

我不能真正测试它,因为Temp目录的使用模式是不可预测的。
如果这是真的,那么就不能测试使用多个任务/线程的代码……因为程序启动时它的路径不存在。在某个时刻,将在Temp中创建一个目录。过了一段时间,里面又多了一个dir。然后过一段时间目标文件就会出现。如果你知道它什么时候会出现,那么你可以做#1,即使知道FSW不是那么可靠。@JuanCarlos第二点的链接不幸断开了。