FileSystemWatcher - tylko jedno zdarzenie zmiany raz uruchomione?

Używam poniższego kodu do nasłuchiwania zdarzeń zmian w pliku, który pobieram z serwera i otwieram. jednak zdarzenie zmiany jest uruchamiane tylko przy pierwszym zapisaniu pliku, a następnie w kolejnych zapisach obserwator plików nie uruchamia zdarzeń zmiany?

Czy ktoś może zobaczyć, co się dzieje?

private FileSystemWatcher StartWatchingFile()
{
    fw = new FileSystemWatcher();
    fw.Path = this.directoryLocation;
    fw.Filter = this.Filename;

    fw.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite;

    // Add event handler
    fw.Changed += new FileSystemEventHandler(fw_Changed);

    // Open file        
System.Diagnostics.Process.Start(this.CreateAbsoluteFilePath(this.Filename));

    // Begin watching.
    fw.EnableRaisingEvents = true;

    return fw;
}

//************************  

    void fw_Changed(object sender, FileSystemEventArgs e)
    {
        MessageBox.Show("File: " + e.FullPath + " " + e.ChangeType);
    }

EDYCJA: Plik StartWatchingFile () zwraca teraz filewatcher, który jest przechowywany w klasie, która nie będzie zbierana bezużyteczna, tylko po to, aby upewnić się, że trzymam całą klasę, jak można sądzić, że funkcja fw_changed () nie może być wywołana. Cała klasa nie pobiera teraz śmieci. Klasa odbywa się w tablicy ArrayList, która jest członkiem publicznym klasy

Pozdrowienia,

Jon

questionAnswers(2)

yourAnswerToTheQuestion