Есть приложение, которое работает постоянно, выполняя бесконечный цикл.
Есть необходимость его прервать, но так, что бы выполнилось все до конца текущего цикла.
т.е. приложение сначала подключается к серверам, потом выполняет цикл.
В цикле несколько действий и если прервать (просто убить процесс), то получится ошибка в данных.
Необходимо, чтобы все действия выполнились, а потом приложение вышло из цикла и выполнило отключение от серверов.
Re: Прервать выполнение консольного приложения
От:
Аноним
Дата:
26.06.08 06:57
Оценка:
Здравствуйте, spike, Вы писали:
S>Есть приложение, которое работает постоянно, выполняя бесконечный цикл. S>Есть необходимость его прервать, но так, что бы выполнилось все до конца текущего цикла. S>т.е. приложение сначала подключается к серверам, потом выполняет цикл. S>В цикле несколько действий и если прервать (просто убить процесс), то получится ошибка в данных. S>Необходимо, чтобы все действия выполнились, а потом приложение вышло из цикла и выполнило отключение от серверов.
Здравствуйте, spike, Вы писали:
S>Есть приложение, которое работает постоянно, выполняя бесконечный цикл. S>Есть необходимость его прервать, но так, что бы выполнилось все до конца текущего цикла.
Посмотрите на Console.CancelKeyPress и SetConsoleCtrlHandler использование данных обработчиков позволяет контролировать "завершение" консольных приложений
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: Прервать выполнение консольного приложения
От:
Аноним
Дата:
26.06.08 07:43
Оценка:
Здравствуйте, spike, Вы писали:
S>Есть приложение, которое работает постоянно, выполняя бесконечный цикл. S>Есть необходимость его прервать, но так, что бы выполнилось все до конца текущего цикла. S>т.е. приложение сначала подключается к серверам, потом выполняет цикл. S>В цикле несколько действий и если прервать (просто убить процесс), то получится ошибка в данных. S>Необходимо, чтобы все действия выполнились, а потом приложение вышло из цикла и выполнило отключение от серверов.
Сделай другое приложение, которое пошлёт первому сообщение на закрытие (например через именованные системные эвенты).
Подобный механизм применялся в apache 1. Да и во втором подобное присутствует.
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, spike, Вы писали:
S>>Есть приложение, которое работает постоянно, выполняя бесконечный цикл. S>>Есть необходимость его прервать, но так, что бы выполнилось все до конца текущего цикла.
TK>Посмотрите на Console.CancelKeyPress и SetConsoleCtrlHandler использование данных обработчиков позволяет контролировать "завершение" консольных приложений