【发布时间】:2015-10-09 23:38:04
【问题描述】:
如果您搜索FileSystemWatcher 问题,您会发现很多关于FileSystemWatcher 跳过某些事件(不触发所有事件)的文章。基本上,如果您更改了监视文件夹中的大量文件,其中一些将不会被FileSystemWatcher 处理。
为什么会这样,我怎样才能避免错过事件?
【问题讨论】:
-
它不会跳过事件。不为 Error 事件编写事件处理程序是您的错误。没有其他方法可以发现您的事件处理程序太慢和/或您需要增加 InternalBufferSize。此外,在事件处理程序中使用 try/catch 来忽略告诉您无法打开文件的 IOException 也无能为力。
-
当然你需要一个错误事件处理程序。我的代码只演示了文件更改检测和文件处理在两个线程中的分离。此外,我没有编写代码来检测文件是否已被创建它的进程释放。正如我在代码中评论的那样,该代码应该在 ProcessFile 函数中。
标签: c# filesystemwatcher