FileSystemWatcher - отключение уведомлений, когда приложение не имеет фокуса
Пишу редактор со вкладками (c# wpf). Прикрутил FileSystemWatcher для отслеживания изменения содержимого текстовых файлов во вкладках. Но не получается сделать так, чтобы уведомление (watcher.Changed) об изменении файла (внешним процессом) появлялось только тогда, когда фокус находится на вкладках или хотя бы в фокусе находится главное окно приложения. И не появлялось, когда мы находимся в окне(ах) другого приложения. Каким образом народ решает подобные задачи ?
Ответы (1 шт):
Решил задачу просто. Настраиваю свой 'флаг' в обработчиках Window.Activated 'флаг=true' и Window.Deactivated 'флаг=false'. В обработчике события 'watcher.Changed' в начале проверяю 'флаг' while(!флаг){}. Т.е. по приходе события 'Changes', если окно приложения не в фокусе, то просто тупо ждём, пока окно примет фокус.