我有一个使用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);
}
但它似乎不起作用,应用程序仍然进入循环。那么为什么它不起作用,我需要做什么呢?
答案 0 :(得分:1)
您可以设置,而不是解开您的事件处理程序 FileSystemWatcher类的EnableRaisingEvents属性为false 禁用所有创建/重命名/删除/更改事件。 更改链接后,只需启用FileSystemWatcher 通过将EnableRaisingEvents设置为true。