Прервать выполнение консольного приложения
От: spike Беларусь blog
Дата: 26.06.08 06:53
Оценка:
Есть приложение, которое работает постоянно, выполняя бесконечный цикл.
Есть необходимость его прервать, но так, что бы выполнилось все до конца текущего цикла.
т.е. приложение сначала подключается к серверам, потом выполняет цикл.
В цикле несколько действий и если прервать (просто убить процесс), то получится ошибка в данных.
Необходимо, чтобы все действия выполнились, а потом приложение вышло из цикла и выполнило отключение от серверов.
Re: Прервать выполнение консольного приложения
От: Аноним  
Дата: 26.06.08 06:57
Оценка:
Здравствуйте, spike, Вы писали:

S>Есть приложение, которое работает постоянно, выполняя бесконечный цикл.

S>Есть необходимость его прервать, но так, что бы выполнилось все до конца текущего цикла.
S>т.е. приложение сначала подключается к серверам, потом выполняет цикл.
S>В цикле несколько действий и если прервать (просто убить процесс), то получится ошибка в данных.
S>Необходимо, чтобы все действия выполнились, а потом приложение вышло из цикла и выполнило отключение от серверов.

Файлы как флаги. Старо как мир.
Re: Прервать выполнение консольного приложения
От: TK Лес кывт.рф
Дата: 26.06.08 07:26
Оценка:
Здравствуйте, spike, Вы писали:

S>Есть приложение, которое работает постоянно, выполняя бесконечный цикл.

S>Есть необходимость его прервать, но так, что бы выполнилось все до конца текущего цикла.

Посмотрите на Console.CancelKeyPress и SetConsoleCtrlHandler использование данных обработчиков позволяет контролировать "завершение" консольных приложений
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: Прервать выполнение консольного приложения
От: Аноним  
Дата: 26.06.08 07:43
Оценка:
Здравствуйте, spike, Вы писали:

S>Есть приложение, которое работает постоянно, выполняя бесконечный цикл.

S>Есть необходимость его прервать, но так, что бы выполнилось все до конца текущего цикла.
S>т.е. приложение сначала подключается к серверам, потом выполняет цикл.
S>В цикле несколько действий и если прервать (просто убить процесс), то получится ошибка в данных.
S>Необходимо, чтобы все действия выполнились, а потом приложение вышло из цикла и выполнило отключение от серверов.

Сделай другое приложение, которое пошлёт первому сообщение на закрытие (например через именованные системные эвенты).
Подобный механизм применялся в apache 1. Да и во втором подобное присутствует.
Re[2]: Прервать выполнение консольного приложения
От: spike Беларусь blog
Дата: 26.06.08 08:56
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, spike, Вы писали:


S>>Есть приложение, которое работает постоянно, выполняя бесконечный цикл.

S>>Есть необходимость его прервать, но так, что бы выполнилось все до конца текущего цикла.

TK>Посмотрите на Console.CancelKeyPress и SetConsoleCtrlHandler использование данных обработчиков позволяет контролировать "завершение" консольных приложений


спасибо, это то что надо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.