Здравствуйте, Аноним, Вы писали:
А>Используйте средства синхронизации, можно посмотреть здесь — http://msdn.microsoft.com/ru-ru/library/172d2hhw.aspx
Синхронизация мне не поможет. Мне нужно чтобы обработчик исключения мог узнать о событии [Ctrl+C]. А получается так, что он
сначала выполняется, а потом только в другом потоке выполняется обработчик события [Ctrl+C]. Можно создать событие, кот. будет дергать обработчик
события [Ctrl+C] и подождать(где нить 500 мс) его в обработчике исключения, но это уже криво будет.
HANDLE hConsoleEvent = NULL;
int _tmain(int argc, _TCHAR* argv[]) {
...
hConsoleEvent = CreateEvent(NULL, true, false, NULL);
...
catch (...) {
if (WaitForSingleObject(hConsoleEvent, 500) == WAIT_TIMEOUT)
std::cout << "Error!" << "\n";
else {
// нажали [Ctrl+C]
}
}
BOOL ConsoleHandler( DWORD fdwCtrlType )
{
SetEvent(hConsoleEvent);
...
}