LINUX.ORG.RU

Остановка thread-a по таймеру


0

1

Всем доброго времени суток.У меня такой вопрос. Сейчас я говорю о QThread-ах. Я запускаю сенсор в отдельном thread-e.Соответственно Интерфейс пользователя изменяется в соответсвии данных,считанных сенсором. А если сенсор ничего не считает?Я имею в виду случай,когда сенсор на вход ничего не получит. Соответственно было бы неплохо паралельно запустить таймер(секундок так на 10,например). Попробовал внутри функции «run» объявить QTimer и запустить его(прикрепив к обработчику предваритеьно,естесссно) и получил такую вот байду:

QObject: Cannot create children for a parent that is in a different thread. (Parent is PalmThreadEnroll(0x1504b8), parent's thread is QThread(0x9f0d8), current thread is PalmThreadEnroll(0x1504b8)

Сделал тоже самое,но внутри класса определил этот таймер и получил:

Segmentation fault

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

Заранее спасибо.


Ответ на: комментарий от Jetty

Я же написал,что сделал внутри:

«Попробовал внутри функции „run“ объявить локально QTimer и запустить его(прикрепив к обработчику предваритеьно,естесссно) и получил такую вот байду:

QObject: Cannot create children for a parent that is in a different thread. (Parent is PalmThreadEnroll(0x1504b8), parent's thread is QThread(0x9f0d8), current thread is PalmThreadEnroll(0x1504b8)»

rapa
() автор топика
Ответ на: комментарий от rapa

>Cannot create children for a parent that is in a different thread

Это потому что когда тред создаёшь this не надо указывать. В доках об этом написано.

mi_estas
()
Ответ на: ололо от ckotinko

1)Не суди,да не судим будешь.(Цитата)

2)Это твоё личное мнение и не уверен,что оно интерестно другим.

3)Это не относится к теме.Если есть большое желание подискутировать - напиши мне в личку

rapa
() автор топика
Ответ на: комментарий от rapa

>напиши мне в личку

на лоре нет «лички». к.о.

А как ты сенсор читаешь то? И вообще что такое сенсор? Это файл устройства? Или уже готовый QIODevice inherited?

mi_estas
()

кури книжки по многопоточному программированию. читай свой «сенсор» с таймаутом (если операция чтения блочится) в самом потоке, или замеряй время работы, если «сенсор» опрашивается в цикле и операция не блокируется. кароч напиши для начала что и как ты в потоке читаешь

s0L
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.