FileSystemWatcher удалить обработчик события - PullRequest
5 голосов
/ 04 февраля 2010

По какой-то причине я не могу удалить обработчик событий из FileSystemWatcher.

Это то, что у меня есть

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

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

Когда я вызываю start, я начинаю получать события изменения, но когдаЯ звоню стоп, я ожидаю, что события прекратятся, но они все еще возникают.

1 Ответ

7 голосов
/ 04 февраля 2010

Вы пробовали установить EnableRaisingEvents в false:

void Stop() 
{ 
     ivFileSystemWatcher.EnableRaisingEvents = false;

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

Не видя остальную часть вашего кода, я не уверен, что это лучшее место для Dispose() ...

...