出于某种原因,我无法从FileSystemWatcher中删除事件处理程序。
这就是我所拥有的
void Start()
{
ivFileSystemWatcher = new FileSystemWatcher();
ivFileSystemWatcher.Changed +=
new FileSystemEventHandler(ivFileSystemWatcher_Changed);
}
void Stop()
{
ivFileSystemWatcher.Changed -=
new FileSystemEventHandler(ivFileSystemWatcher_Changed);
ivFileSystemWatcher.Dispose();
}
当我打电话开始时,我开始接收更改事件,但是当我呼叫停止时,我希望事件停止,但它们仍在被提升。
答案 0 :(得分:7)
您是否尝试过将EnableRaisingEvents
设为false
:
void Stop()
{
ivFileSystemWatcher.EnableRaisingEvents = false;
ivFileSystemWatcher.Changed -=
new FileSystemEventHandler(ivFileSystemWatcher_Changed);
ivFileSystemWatcher.Dispose();
}
在没有看到其余代码的情况下,我不相信这是Dispose()
的最佳位置......