Отслеживание изменения файла - C#

Узнай цену своей работы

Формулировка задачи:

Не могу разобраться, почему при отслеживании изменений в файле происходит двойной вызов. Вот код логгера, который отслеживает изменение (стартую его в отдельном потоке):
Листинг программы
  1. public class Logger
  2. {
  3. private FileSystemWatcher _watcher;
  4. private bool _enabled = true;
  5. public Logger()
  6. {
  7. _watcher = new FileSystemWatcher("C:\\Temp");
  8. _watcher.Filter = "log.txt";
  9. _watcher.Changed += Watcher_Changed;
  10. }
  11. public void Start()
  12. {
  13. _watcher.EnableRaisingEvents = true;
  14. while (_enabled)
  15. {
  16. Thread.Sleep(1000);
  17. }
  18. }
  19. public void Stop()
  20. {
  21. _watcher.EnableRaisingEvents = false;
  22. _enabled = false;
  23. }
  24. private void Watcher_Changed(object sender, FileSystemEventArgs e)
  25. {
  26. RecordEntry();
  27. }
  28. private void RecordEntry()
  29. {
  30. Process proc = new Process();
  31. proc.StartInfo.FileName = @"C:\Program Files\AIMP3\AIMP3.exe";
  32. proc.StartInfo.Arguments = "/PLAY";
  33. proc.Start();
  34. }
  35. }
То есть, если что-либо изменилось, то запускается дважды. Помогите разобраться

Решение задачи: «Отслеживание изменения файла»

textual
Листинг программы
  1. public void Start()
  2. {
  3.     _watcher.EnableRaisingEvents = true;
  4. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы