FileSystemWatcher删除事件处理程序

时间:2010-02-04 05:35:06

标签: c# events handler filesystemwatcher

出于某种原因,我无法从FileSystemWatcher中删除事件处理程序。

这就是我所拥有的

void Start()
{
     ivFileSystemWatcher = new FileSystemWatcher();
     ivFileSystemWatcher.Changed += 
        new FileSystemEventHandler(ivFileSystemWatcher_Changed);
}

void Stop()
{
     ivFileSystemWatcher.Changed -= 
        new FileSystemEventHandler(ivFileSystemWatcher_Changed);
     ivFileSystemWatcher.Dispose();
}

当我打电话开始时,我开始接收更改事件,但是当我呼叫停止时,我希望事件停止,但它们仍在被提升。

1 个答案:

答案 0 :(得分:7)

您是否尝试过将EnableRaisingEvents设为false

void Stop() 
{ 
     ivFileSystemWatcher.EnableRaisingEvents = false;

     ivFileSystemWatcher.Changed -=  
        new FileSystemEventHandler(ivFileSystemWatcher_Changed); 
     ivFileSystemWatcher.Dispose(); 
}

在没有看到其余代码的情况下,我不相信这是Dispose()的最佳位置......