C #: uso de FileSystemWatcher para ver los cambios en los archivos

Ok, entonces aprendí deCómo verificar si un archivo abierto ha sido actualizado que debería usar unFileSystemWatcher para ver los cambios en los archivos. Entonces ahora, la pregunta es si debo hacer un seguimiento de muchos archivos, ¿creo 1 observador para cada archivo? Además, de alguna manera debo deshacerme del observador una vez que se cierra el archivo. Está teniendo unDictionary<string, FileSystemWatcher> almacenar la ruta del archivo y elFileSystemWatcher ¿el camino a seguir? A medida que abro más archivos, agrego más observadores y cuando cierro, dispongo de los observadores adecuadamente. ¿Tener demasiados observadores será algo malo?

ACTUALIZAR

Lo acabo de hacer

protected void AttachFileMonitor(EditorTabViewModel tab)
{
    string file = tab.FilePath;
    if (!_fsWatchers.ContainsKey(file))
    {
        var watcher = new FileSystemWatcher();
        watcher.Path = Path.GetDirectoryName(file);
        watcher.Filter = Path.GetFileName(file);
        watcher.Changed += (s, e) =>
        {
            string message = "";
            string caption = "";
            MessageBoxButton buttons = MessageBoxButton.YesNo;
            MessageBoxImage image = MessageBoxImage.Question;
            MessageBoxResult defaultResult = MessageBoxResult.Yes;
            MessageBoxResult result = _dialogSvc.GetMessageBox(message, caption, buttons, image, defaultResult);
            if (result == MessageBoxResult.Yes)
            {
                tab.Open(file);
            }
        };
        _fsWatchers.Add(file, watcher);
    }
}
protected void DetachFileMonitor(EditorTabViewModel tab)
{
    if (_fsWatchers.ContainsKey(tab.FilePath)) {
        _fsWatchers.Remove(tab.FilePath);
    }
}

encontre esoChanged() nunca se activa ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta