FileSystemWatcher работает неправильно. Он реагирует только тогда, когда происходит первое изменение. Если я затем изменил второй файл, ничего не произойдет.FileSystemWatcher не работает должным образом WPF
public class ImageViewModel : INotifyPropertyChanged
{
public static ImageViewModel singletonInstance { get; set; }
FileSystemWatcher watcher;
private readonly BackgroundWorker worker1;
public ImageViewModel()
{
...
watcher = new FileSystemWatcher(RootPath);
watcher.EnableRaisingEvents = true;
watcher.IncludeSubdirectories = true;
watcher.Changed += new FileSystemEventHandler(watcher_Changed);
this.worker1 = new BackgroundWorker();
this.worker1.DoWork += this.DoWork1;
this.worker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker1_Completed);
}
...
private void watcher_Changed(object sender, FileSystemEventArgs e)
{
editedFile = e.FullPath;
if (worker.IsBusy == true || worker1.IsBusy == true)
{
autoEvent.WaitOne();
}
else
{
this.worker1.RunWorkerAsync();
}
}
}
Помогите решить эту проблему?
кажется странным, что ваш наблюдатель работает только один раз .. вы уверены, что не отключите его в watcher_changed? – BugFinder
Какая ошибка? * не работает должным образом * на самом деле не помогает нам. – RandomStranger
Что должно делать BackgroundWorker? Почему поле 'watcher' не' private readonly', как 'worker1'? Что вы делаете в 'watcher_Changed'? Укажите [минимальный, полный и проверяемый пример] (http://stackoverflow.com/help/mcve). – Clemens