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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QThread и вечний цикл  (Прочитано 6685 раз)
FreTFuL
Гость
« : Август 20, 2010, 11:30 »

У меня создаєтся поток. в нем цикл виполняється пока открити среда.  И так вопрос:

Какую команду мне в нем визвать чтоби обрабатовались собития?


моя функція с циклом запустаєтся из среди воттак:
Код:
void MailSender::run(){
    settings->readSettings();
    QTimer::singleShot(1,this,SLOT(executeSenderLoop()));
    exec();

}

что мне нужно добавить между инструкциями цикла для того чтоби работали сигнали и слоти.
Записан
BRE
Гость
« Ответ #1 : Август 20, 2010, 11:41 »

А что они разве не работают?
Ты напиши что должно получиться.
Записан
FreTFuL
Гость
« Ответ #2 : Август 20, 2010, 12:50 »

когда работаєт тот цикл то сигнали и собития не обрабативаються !!! потом чтоу сам цикс в том слоте что визван первим и пока он исполняється то другиє сигнали не принимаються как я понимаю!
Записан
BRE
Гость
« Ответ #3 : Август 20, 2010, 12:55 »

когда работаєт тот цикл то сигнали и собития не обрабативаються !!! потом чтоу сам цикс в том слоте что визван первим и пока он исполняється то другиє сигнали не принимаються как я понимаю!
Ты какой цикл имеешь ввиду?
Цикл обработки событий, запускаемый в exec() или у тебя есть свой цикл в executeSenderLoop.
Если ты крутишь цикл в executeSenderLoop, то его можно заменить, например, запустив в потоке таймер, который будет постоянно через заданный интервал времени вызывать твой слот, в котором ты будешь проверять наличие почты.
Записан
FreTFuL
Гость
« Ответ #4 : Август 20, 2010, 12:59 »

У меня свой цикл.  В каком исполняються нужниє мне инструкции но мне нужно чтоби во время етого цикла обрабатовались сигнали тоже!!!
Записан
BRE
Гость
« Ответ #5 : Август 20, 2010, 13:03 »

У меня свой цикл.  В каком исполняються нужниє мне инструкции но мне нужно чтоби во время етого цикла обрабатовались сигнали тоже!!!
Короче, что бы работали межпоточные сигналы, нужно что бы работал цикл обработки событий.
Как ты его будешь крутить, с помощью exec(), QEventLoop или вызывая QApplication::processEvents() решать тебе!!!

Кстати, что бы только отправить сигнал другому потоку eventloop не обязателен, а вот что бы поток мог принять сигнал - обязателен.
« Последнее редактирование: Август 20, 2010, 13:07 от BRE » Записан
FreTFuL
Гость
« Ответ #6 : Август 20, 2010, 13:06 »

QApplication::processEvents()  - можно использовать без exec()Непонимающий??
Записан
BRE
Гость
« Ответ #7 : Август 20, 2010, 13:09 »

QApplication::processEvents()  - можно использовать без exec()Непонимающий??
В потоках нет, это я вообще про event loop.
Записан
labview
Гость
« Ответ #8 : Август 20, 2010, 13:10 »

Вот в этой простой проге я использовал QThread с сигналами и слотами. Если интересно загляни. Прога на самом деле совсем простая, думаю разберёшься.

http://www.prog.org.ru/index.php?topic=14556.msg95023#msg95023
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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