Название: QTimer и QThread. Можно ли подружить? Отправлено: serg_hd от Февраль 22, 2010, 18:13 Хотелось бы иметь возможность запускать QTimer внутри run()'a. В доке по этому поводу пишут ""In multithreaded applications, you can use QTimer in any thread that has an event loop. To start an event loop from a non-GUI thread, use QThread::exec()."". Как это осуществить? Спасиб ответившим.
Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: BRE от Февраль 22, 2010, 18:17 Код
Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: serg_hd от Февраль 22, 2010, 18:23 В Jambi это, видимо, не так просто. Например у кого вызвать метод exec()??... Просто так его там не напишешь и QThread.exec() - нет такого.
Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: BRE от Февраль 22, 2010, 18:28 Вот отсюда: http://qt.nokia.com/doc/qtjambi-4.5.0_01/com/trolltech/qt/qtjambi-threads.html
Код: class EventLoopThread implements Runnable Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: serg_hd от Февраль 22, 2010, 18:59 Вот отсюда: http://qt.nokia.com/doc/qtjambi-4.5.0_01/com/trolltech/qt/qtjambi-threads.html Премного благодарен.Код: class EventLoopThread implements Runnable Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: Edynchik от Ноябрь 22, 2011, 09:42 скажите,при использовании двух таймеров в одном отдельном потоке, по второму таймеру не функция не отрабатывается. Почему так может быть?
Код в func2 точка останова не срабатывает, а в func1 срабатывает... Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: RedDog от Ноябрь 22, 2011, 10:42 скажите,при использовании двух таймеров в одном отдельном потоке, по второму таймеру не функция не отрабатывается. Почему так может быть? А сам поток еще жив через 1000 мс?Код в func2 точка останова не срабатывает, а в func1 срабатывает... Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: Edynchik от Ноябрь 22, 2011, 12:31 ну получается так, ведь точка останова в func1 ,определенный в классе Thread, срабатывает, а в func2 ,определенный в классе Thread, не срабатывает...или я что то не так понимаю...
притом не очень понятно почему так происходит...если оставить только таймер связанный с func2,а func1 удалить..то ситуация не меняется... Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: LisandreL от Ноябрь 22, 2011, 13:57 А event loop-то у вас где?
Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: Edynchik от Ноябрь 22, 2011, 14:01 ну я в конец run вставил exec(). А про event loop от вас узнал. Поможете разобраться: что это и куда вставлять?
или в run просто вставить: Код
Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: LisandreL от Ноябрь 22, 2011, 14:24 ну я в конец run вставил exec(). А про event loop от вас узнал. Exec достаточно. Он через тот же event loop работает. Покажите что функции делают, а так же как создаётся, запускается, останавливается и уничтожается поток.Exec надо после стартов таймеро делать, а никак не до. Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: Edynchik от Ноябрь 22, 2011, 14:31 ну вот нечто подобное:
main.cpp Код thread.h Код thread.cpp Код
Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: LisandreL от Ноябрь 22, 2011, 15:05 А как вы определяете, что в функцию f2 оно не заходит, если там ни строчки, а только возвращение значения, которое никуда не присваивается?
Название: Re: QTimer и QThread. Можно ли подружить? Отправлено: Edynchik от Ноябрь 22, 2011, 15:12 ну ставлю точку останова на return...даже если добавить какое либо присвоение,дело то это не меняет...
|