skilk Опубликовано 5 августа, 2010 Жалоба Поделиться Опубликовано 5 августа, 2010 (изменено) Доброго времени суток. Подскажите как правильно завершить поток при завершении работы ОС, так как если его не завершить, то система не может выключиться. Заранее спасибо. Реализация - Delphi 7 Изменено 5 августа, 2010 пользователем skilk Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Amsterdam Опубликовано 25 августа, 2010 Жалоба Поделиться Опубликовано 25 августа, 2010 Поздновато, конечно, но :blushing: Я пользовался обработкой приходящих форме сообщений - обрабатывал WM_QUERYENDSESSION, в обработчике сообщения завершал поток. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
skilk Опубликовано 22 сентября, 2010 Автор Жалоба Поделиться Опубликовано 22 сентября, 2010 А если нет формы то как быть? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Amsterdam Опубликовано 30 сентября, 2010 Жалоба Поделиться Опубликовано 30 сентября, 2010 (изменено) В C++ Builder я бы так делал: // где-то при старте программы разметить невизуальное окноHWND Handle = AllocateHWnd(MSGDispatcher);...void __fastcall TSomeClass::MSGDispatcher(TMessage& msg){ switch (msg.Msg) {case WM_QUERYENDSESSION:// действия по завершению потока... }}...// где-то в самом концеDeallocateHWnd(Handle); Delphi подзабыл уже, переведешь сам, я думаю :mad: Изменено 30 сентября, 2010 пользователем Amsterdam Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.