Событие вызывается 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;
}
}
}