У меня есть консольное приложение, которое будет работать по выходным. И когда я вернусь к работе, мне нужно будет благополучно ее прекратить.Безопасное выключение консольного приложения?
Он запускает цикл и изменяет файлы, перемещая их и обновляя базу данных.
Я не могу просто просто Ctrl-Z выйти из него Я предполагаю, что это может остановить программу в середине работы над файлом?
Есть ли безопасный способ для меня, чтобы сказать, нажмите клавишу «C», чтобы установить мой runLoop
boolean
в false
так что это будет выйти из моего цикла правильно или есть способ лучше?
static void Main(string[] args)
{
bool runLoop = true;
while (runLoop)
{
// bunch of code
// moving files, updating database.
}
}
Что такое безопасный способ прервать этот цикл и убедиться, что текущий файл будет успешно завершен?
Я добавил это, выполнил мою программу и нажал Ctrl-C. Это оставило консольное окно открытым, оно остановило запуск программы, но я не уверен, где она остановилась. Мне нужно было сыграть в игру, чтобы продолжить программу или остановиться. Он не действовал так, как если runLoop был ложным, потому что у меня есть распечатка подсчетов, когда это происходит. Есть ли что-то еще, что я могу потерять? –
@JamesWilson Правильно, он убьет процесс, когда обработчик этого события завершится; вам необходимо убедиться, что этот обработчик событий переживает остальную часть процесса. – Servy
@jgauffin побег ничего не сделал. И я использовал этот сайт в качестве ссылки для нажатия Ctrl-C. http://msdn.microsoft.com/en-us/library/system.console.cancelkeypress.aspx –