Re[8]: SetConsoleCtrlHandler и многопоточность
От: mityaj.it.0  
Дата: 21.09.09 08:08
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, mityaj.it.0, Вы писали:


СМ>>>suspendthread

MI0>>не получится, потому что обработчик события [Ctrl+C] в другом потоке получит управление после обработки исключения в основном потоке(по крайней мере
MI0>>это нельзя списывать)

СМ>не понял. Мы сейчас работаем в обработчику Ctrl+C, и пытаемся передать другому thread (например главному) исключение. так?


СМ>так как мы получим управление _после_ обработки искл в главном? (т.е. получить то можем, но зачем?)

Нет.
В главном потоке строка "std::cin >> itSum" ожидает от юзера ввода целого числа, если юзер передумает и захочет выйти,
то он нажмет [Ctrl+C]. В этом случае "std::cin >> itSum" сгенерит исключение(поскольку введено не значение типа int) и винда создаст поток, в кот. передаст управление моему обработчику "ConsoleHandler".
Мне не нужно обрабатывать исключение, поскольку это не ввод числа, а запрос на выход из программы. Вопрос в том, как основному потоку в обработчике исключения понять, что был запрос на выход, а не ввод неверного числа?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.