5

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

这就是我所拥有的

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

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

当我调用 start 时,我开始接收更改事件,但是当我调用 stop 时,我希望事件停止但它们仍在引发。

4

1 回答 1

9

您是否尝试设置EnableRaisingEventsfalse

void Stop() 
{ 
     ivFileSystemWatcher.EnableRaisingEvents = false;

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

没有看到你的代码的其余部分,我不相信这是最好的地方Dispose()......

于 2010-02-04T05:41:37.060 回答