У меня есть программа, которая вызывает функцию FileWatcher, как этотподачи на вход Console.ReadKey
Main()
{
watch();
console.Readkey();
}
У меня есть console.readkey в конце, потому что я не хочу консоль для отображения «Нажмите любую чтобы продолжить, пока файл просматривается для изменений. Теперь, если обнаружено изменение, запускается другая функция, которая делает свою вещь, и в итоге снова вызывает main, которая снова останавливается на console.readkey.
На данный момент у меня возникают некоторые странные проблемы, такие как программа требует двух ключевых входов для продолжения. Я предполагаю, что это потому, что console.readkey из before все еще ждет ввода, поэтому первый вход идет туда, а затем второй вход переходит ко второму console.readkey.
Итак, мой вопрос в том, что при первом запуске filewatcher я могу через код передать что-то на console.readkey, ожидающий ввода пользователем?
Но в этом случае, если я не установлю exitProgram на true, функция watcher будет вызвана бесконечно. Я просто хочу вызвать функцию наблюдателя один раз и позволить ей работать в фоновом режиме, наблюдая за изменениями. Если изменения будут найдены, я остановлю наблюдателя, внесут некоторые изменения в файл и хочу перезапустить наблюдателя. – xbonez
PS - когда функция наблюдателя обнаруживает изменение, он вызывает метод OnChange, который я написал. Я не могу вызвать функцию наблюдателя из этого метода, потому что для внесения необходимых изменений мне нужно снова получить доступ к Main снова. – xbonez
@xbonez: Теперь я понимаю - цикл все еще правильный путь. Я переписал свой ответ, чтобы объяснить, как вы можете выполнить эту работу с помощью цикла + AutoResetEvent. –