![]() |
|
![]() ![]() ![]() |
|
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Доброе время суток.
Задача - использование QTimer'a в QThread, вариант sleep в самом потоке не желателен... Сейчас работает так, но алгоритмически это - ошибка в решаемой задачи... Почитал я кое-что... Сделал вывод, что надо поток создавать exec'ом, но вот где ему тогда прописывать то, что он должен делтать по таймеру - вопрос... Я так понимаю, могу обойтись и встроенными в QThread (от QObject): startTimer(int), killTimer... Спасибо. Это сообщение отредактировал(а) Mal Hack - 14.3.2008, 22:56 |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 7 Всего: 162 |
Чего-то я не понял вопроса и проблемы...
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Суть проблемы. Есть QThread, внутри него:
Но... Мне надо выпонлять операции в цикле не с промежутком в 10 мс, а с тактом в 10 мс.. Т.е. Грубо говоря, чтобы 10 мс отсчитывались не от времени последней операции, а как в таймере.. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
не уверен, что тебе ОС такую периодичность сможет гарантировать
|
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 7 Всего: 162 |
ну, 10 миллисекунд, думаю, сможет Mal Hack, ну это...
Оно, нет? У меня стойкое ощущение, что что-то я в вопросе упустил... |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Ни у тебя одного, это уже вторая тема автора где я с трудом понимаю чего хочет человек ![]() Немного оффтопика. Глядя на new без delete все-время возникают нехорошие мысли, я конечно понимаю, что в случае с Qt это нормально. А такой вопрос назрел, предположим есть класс, который создается, чтобы выполнится один раз и удалится. Вот как таймер, покрутился 30 минут, истек интервал и должен удалится. Возможно ли удаления класса самим себя где-нибудь в конце метода или даже конструктора, когда он дотуда дойдет ? |
|||
|
||||
Mal Hack |
|
||||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Задача - опрашивать устройство с частотой 100 Гц, делать это надо в потоке ибо не дай бог что отвалить, основная нить должна жить и с ней надо работать дальше ;)
Если бы все было так просто ;) Имею при запуске:
|
||||||
|
|||||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
Mal Hack, вообще-то таймеры созданы в основном для работы с интерфейсом (я их так понимаю). Именно поэтому их нельзя запускать из отдельного потока.
А потом, что значит "отвалится"? Сделай проверку, чтобы не повисало. В любом случае, проку от проги с повисшим потоком - 0, так как его надо убивать, а там ресурсы могут не подчиститься... В общем, плохая идея. Думаю, тебе придется завязаться на API предоставляемый OS. |
|||
|
||||
nickless |
|
||||||||||||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 13 Всего: 181 |
Ну почему? Можно, если event loop запустить
ЗЫ Насчет new без delete, parent надо не забывать передавать, а то вот это не удалится ![]()
Посмотри QObject::deleteLater() -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
||||||||||||
|
|||||||||||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
nickless, если честно, не фига не понял, что вы хотели сказать этим постом...
Пробовал сделать по аналогии - результат как и раньше... метод, который должен выполняться по таймеру лежит в обьекте потока. |
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 13 Всего: 181 |
Ну это был как-бы пример использования QTimer в QThread... Код + ошибки в студию. -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Сделал так:
|
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 13 Всего: 181 |
Вот это
когда вызывается? Какие ошибки? Добавлено через 1 минуту и 46 секунд Надо чтобы вызывалось после run() -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
nickless, ошибок нет...
Вызываю после run... Все работает ![]() Это сообщение отредактировал(а) Mal Hack - 16.3.2008, 13:47 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, 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. |