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

次のように設定EnableRaisingEventsしてみましたかfalse

void Stop() 
{ 
     ivFileSystemWatcher.EnableRaisingEvents = false;

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

あなたのコードの残りの部分を見ずに、私はそれがDispose()...のための最良の場所であると確信していません。

于 2010-02-04T05:41:37.060 に答える