В форме Windows у меня есть:
- таймер tmrBackup , который регулярно выполняет резервное копирование локальной базы данных
- ипроцедура события, которая вызывает процедуру ImportNewFile , когда FileSystemWatcher обнаруживает новый файл в заданном каталоге.
Каждый из них работает идеально, если они нене мешают друг другу.
Я пытаюсь предотвратить это, остановив FileSystemWatcher при запуске резервного копирования и снова запустив его после завершения.
С другой стороны, я установил tmrBackup.Stop () в начале ImportNewFile , затем содержимое файла преобразуется в запись в локальной базе данных.В конце ImportNewFile Я снова установил tmrBackup.Start () .Но таймер никогда не запускается снова, так что, похоже, это нереально.
Когда я не устанавливаю tmrBackup.Stop () , хотя,Я вижу странное поведение во время отладки: когда где-то в ImportNewFile срабатывает таймер, кажется, что обе подпрограммы работают параллельно: одна строка в tmrBackup процедура выполняется, затем VB.Net возвращается к ImportNewFile для одной строки, затем к таймеру и т. Д.
Вопрос: что такоеправильный метод для работы с двумя объектами, каждый из которых может срабатывать, пока обрабатывается событие другого?Спасибо!