FileSystemWatcher - apenas o evento de alteração, uma vez acionado uma vez?

Estou usando o código abaixo para ouvir eventos de alteração de um arquivo que eu baixei de um servidor e abri. no entanto, o evento de alteração só é disparado na primeira vez em que o arquivo é salvo e, em seguida, no salvamento subsequente, o observador de arquivos não dispara os eventos de alteração?

Alguém pode ver o que está acontecendo?

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);
    }

EDIT: O StartWatchingFile () agora retorna o filewatcher que é mantido em uma classe que não será coletada, apenas para ter certeza de que estou mantendo a classe inteira como a função fw_changed () pode não ser capaz de ser chamada. Portanto, toda a turma agora não está recebendo coleta de lixo. A classe é mantida em um ArrayList que é um membro público de uma classe

Saudações,

Jon

questionAnswers(2)

yourAnswerToTheQuestion