![]() |
|
|
![]()
|
|
| daemonaz |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
Требуется поток с возможностью его экстренного заверщения с последующим удалением объекта-потока из памяти. Если поток не трогать, то завершается благополучно, и сам себя удаляет по его завершении слотом deleteLater(). Для экстренного завершения потока использую terminate() и wait(), однако при таком подходе поток зависает надолго, помогает только закрытие приложения, предполагаю что удаление происходит раньше чем будет висеть в wait(), как мне побороть это?
в конструкторе
завершение работы потока
можно конечно булеву переменную использовать для завершения, но думаю что это несерьезно |
||||
|
|||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
серьёзно именно так. поток по сути своей функция, которая выполняет длительную работу или висит в цикле. досрочно завершить её можно установкой флага, проверяемого на каждом шаге цикла или в процессе работы |
|||
|
||||
| daemonaz |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
мне бы для начала понять почему не срабатывает парочка
там и зависает.. Это сообщение отредактировал(а) daemonaz - 31.1.2013, 09:36 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
Добавлено через 3 минуты и 35 секунд варианты, перед вызовом stop() ты захватил мьютекс. Поток перед вызовом стоп тоже встал на этот мьютекс. После terminate() идет wait(), который ждет завершения потока, который висит на мьютексе. Или другой вариант - поток завис до этого на системном вызове... |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |