Question

Pour une raison quelconque, je ne peux pas supprimer un gestionnaire d'événements du FileSystemWatcher.

est ce que j'ai

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

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

Quand j'appelle début je commence à recevoir les événements de changement, mais quand je l'appelle arrêt, je me attends les événements d'arrêter, mais ils sont toujours élevé.

Était-ce utile?

La solution

Avez-vous essayé la mise EnableRaisingEvents à false:

void Stop() 
{ 
     ivFileSystemWatcher.EnableRaisingEvents = false;

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

Sans voir le reste de votre code, je ne suis pas convaincu que c'est le meilleur endroit pour le Dispose() ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top