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

Ниже приведен код, написанный в консольном приложении 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 Ответ

0 голосов
/ 27 февраля 2019

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

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

}

...