crossplatform.ru

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

> Закрытие потока, как правильно это сделать?
AD
  опции профиля:
сообщение 23.6.2009, 13:57
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Что-то не удается закрыть поток:
/// Класс параллельного потока для чтения в автоматическом режиме параметров
class ReadAutoThread: public QThread
{
Q_OBJECT

protected:
         virtual void run();
};

void ReadAutoThread::run()
{
        connect(imitTsl, SIGNAL(thread_stop()), SLOT(quit()));
/// imitTsl - указатель на главное окно программы и соответственно основной поток

    for(;;)
    {
        /// что-нибудь да делаем.
    }
}


а в главном окне программы есть следующий сигнал:
/// Класс главного окна программы
class ImitatorTSL: public QMainWindow, public Ui::ImitatorTSLClass
{
    Q_OBJECT

signals:
void thread_stop();
}

/// Изменение текущей вкладки
void ImitatorTSL::changeTab(int index)
{
    ////

    if(index != 2 && _curr_page == 2)
        emit thread_stop();
      ////
}


В основной программе в слоте переключения вкладок я имитирую этот сигнал. В чем ошибка, из потока все-равно не выходит. В этот бесконечный цикл все-равно попадает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 23.6.2009, 20:20
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(AD @ 23.6.2009, 17:57) *
connect(imitTsl, SIGNAL(thread_stop()), SLOT(quit()));

В твоей программе РОДИТЕЛЬ - окно, я думаю в нём создаётся объект потока ДЕТЁНЫШ.

Дак почему ты в детёныше соеденяешь сигнал родителя с самим детёнышем, это откуда такая практика?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 10:37