crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Ожидание нескольких событий
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ViGOur Дата 28.3.2010, 10:08
  Используй сигналы и слоты для сигнализирования, что он живой.
В основном потоке обрабатывай сигналы QThread::finished, QThread::terminated завершение потока.
В основном потоке можешь проверять по таймеру пришел сигнал от потока, что он живой или нет. Если нет и он не завершен, то убивай его.
frg10 Дата 27.3.2010, 23:51
  Переношу программу с WinAPI на Qt. Не могу сообразить как перенести такой кусок:
1) Запускается рабочий поток.
2) Рабочий поток периодически сигнализирует о том что живой с помощью эвента.
3) Основной поток ждет на WaitForMultipleObjects завершения потока или этого эвента. Если в течении какого-то периода времени эвент не взводится, то рабочий поток считается зависшим и насильно завершается. Если поток завершается, то все ок.

Собственно затык в функции WaitForMultipleObjects. Вместо эвента я использую QWaitCondition. Ожидание потока тоже легко QThread::wait(). А вот как ждать и поток и условие?
Или может как-то по другому это можно сделать... Я как-то не могу сообразить.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.4.2024, 9:26