Событие вызывается 2 раза при обновлении файла, нужно вызывать только ОДИН раз

У меня есть код ниже написано в консольном приложении C#, в основном это просмотр папки Temp где он будет следить за test.txt Обновления файлов.

class Program
{
    private static FileSystemWatcher watcher;
    static void Main(string[] args)
    {
        watcher = new FileSystemWatcher("C:\\Temp\\", "test.txt");
        watcher.Changed += EventCall;
        watcher.EnableRaisingEvents = true;

        Console.ReadKey();
    }

    private static void EventCall(object sender, FileSystemEventArgs e)
    {
        Console.WriteLine("update done");
    }
}

когда test.txt файл обновлен, EventCall метод вызывается 2 раза, что нужно изменить, чтобы событие вызывалось только 1 раз?

1 ответ

Это решение ниже работает для меня.

private int fireCount = 0;
private void inputFileWatcher_Changed(object sender, FileSystemEventArgs e)
{
   fireCount++;
   if (fireCount == 1)
    {
        MessageBox.Show("Fired only once!!");
        dowork();
    }
    else
    {
        fireCount = 0;
    }
}

}

Другие вопросы по тегам