File Watcher не работает без точек останова - PullRequest
1 голос
/ 29 марта 2011

Я создал приложение, в котором он просматривает папку (каталог) для любых *.* файлов. Приложение работает, когда я отлаживаю через VS2010 с точками останова.

То же приложение не работает, когда я удаляю точку останова.

все, что мне не хватает. , .

1 Ответ

6 голосов
/ 29 марта 2011

Это общая проблема с FSW. Отладчик помогает, потому что он замедляет время. Когда процесс генерирует, скажем, событие Change, вы обычно не можете открыть файл сразу. Процесс все еще имеет открытый файл и заблокирован. Отладчик помогает, потому что ваша точка останова дает процессу время для закрытия файла.

Вам придется замедлить время в вашем коде. Избегайте вращения в обработчике событий, так как вы потеряете уведомления об изменениях. Лучший способ сделать это - поместить путь к файлу в поточно-безопасный список <>, который вы пытаетесь очистить с помощью таймера. Это также поможет вам справиться с несколькими уведомлениями об изменениях. И при проблемах с потоками пользовательского интерфейса FSW генерирует свои события в потоке потоков, из которого вы не можете обновить пользовательский интерфейс (но смотрите SynchronizingObject).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...