无法使用FileSystemWatcher的无线事件

时间:2011-08-15 20:52:31

标签: events c#-4.0 filesystemwatcher

我有一个使用FileSystemWatcher监视文件夹以更改文件的应用程序。问题是,当它捕获这些事件时,它需要对这些文档进行更改(更新链接),这当然会再次触发事件,将应用程序置于循环中。

所以我尝试了这个:

    UnWireEvents(); //Turn off the events while updating the documents
            ChangeAllLinks();
            WireEvents(); //Turn the events back on 

   private void WireEvents()
            {
                _monitor.FileChanged += new EventHandler(_monitor_FileChanged);
            }

            private void UnWireEvents()
            {
                _monitor.FileChanged -= new EventHandler(_monitor_FileChanged);
            }

但它似乎不起作用,应用程序仍然进入循环。那么为什么它不起作用,我需要做什么呢?

1 个答案:

答案 0 :(得分:1)

您可以设置,而不是解开您的事件处理程序 FileSystemWatcher类的EnableRaisingEvents属性为false 禁用所有创建/重命名/删除/更改事件。 更改链接后,只需启用FileSystemWatcher 通过将EnableRaisingEvents设置为true。