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

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

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

Не могу разобраться, почему при отслеживании изменений в файле происходит двойной вызов. Вот код логгера, который отслеживает изменение (стартую его в отдельном потоке):
public class Logger
        {
            private FileSystemWatcher _watcher;
            private bool _enabled = true;
            
            public Logger()
            {
                _watcher = new FileSystemWatcher("C:\\Temp");
                _watcher.Filter = "log.txt";
                _watcher.Changed += Watcher_Changed;
            }
 
            public void Start()
            {
                _watcher.EnableRaisingEvents = true;
                while (_enabled)
                {
                    Thread.Sleep(1000);
                }
            }
 
            public void Stop()
            {
                _watcher.EnableRaisingEvents = false;
                _enabled = false;
            }
 
            private void Watcher_Changed(object sender, FileSystemEventArgs e)
            {
                RecordEntry();
            }
 
            private void RecordEntry()
            {
                Process proc = new Process();
                proc.StartInfo.FileName = @"C:\Program Files\AIMP3\AIMP3.exe";
                proc.StartInfo.Arguments = "/PLAY";
                proc.Start();
            }
        }
То есть, если что-либо изменилось, то запускается дважды. Помогите разобраться

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

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

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


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

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

7   голосов , оценка 4.286 из 5
Похожие ответы