Russian Qt Forum
Ноябрь 26, 2024, 02:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QThread - автоуничтожение  (Прочитано 5035 раз)
spectre71
Гость
« : Июль 06, 2009, 23:22 »

Как сделать так, чтобы объект QThread, сам уничтожался по завершению?

Код
C++ (Qt)
class MyThread : public QThread {
....
....
}
 
void runThread(void) {
 MyThread* thr = new MyThread();
 thr->start();
}

где-то делаем вызов runThread и забываем о созданом MyThread, объект "thr"  должен освободиться сам по завершению
Записан
f-r-o-s-t
Гость
« Ответ #1 : Июль 06, 2009, 23:46 »

А может отловить сигнал finished и в слоте его уничтожить ?
Код
C++ (Qt)
void someClass::someSlot()
{
delete qobject_cast<QThread*>(sender());
}
 
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Июль 06, 2009, 23:53 »

finished + deleteLater
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
f-r-o-s-t
Гость
« Ответ #3 : Июль 07, 2009, 00:35 »

finished + deleteLater
Да, согласен, так намного изящней =)
Записан
spectre71
Гость
« Ответ #4 : Июль 07, 2009, 00:50 »

finished + deleteLater
Спасибо, то что надо!

Код
C++ (Qt)
class MyThread : public QThread {
....
....
}
 
void runThread(void) {
 MyThread* thr = new MyThread();
 connect(thr , SIGNAL(finished()), thr , SLOT(deleteLater()));
 thr->start();
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.269 секунд. Запросов: 23.