Помощь в программировании QT с классом QThread, как его использовать - PullRequest
0 голосов
/ 13 апреля 2011

Так что я понимаю, что мое объяснение не было слишком ясным в прошлый раз, поэтому я попытаюсь снова.

У меня есть программа, у которой есть класс датчика, который получает значения от датчика Lego NXT каждые 40 миллисекунд или около того. У меня также есть другой класс рисования (я думаю, что он работает в том же потоке), который рисует и перемещает автомобили каждую 1 миллисекунду, используя opengl в виртуальном мире. Теперь проблема в том, что когда мои датчики получают информацию, машины очень запаздывают и двигаются медленно, но когда датчики выключены и не получают и не вводят данные, машины работают ровно. Как я могу решить эту проблему, я считаю, что мне нужно создать еще один поток, но я не уверен, как это сделать?

примечание: датчики не имеют ничего общего с автомобилями.

1 Ответ

2 голосов
/ 13 апреля 2011

Не так просто дать общий ответ на многопоточность.Qt предоставляет вам различные классы для реализации потоков, поэтому лучше взглянуть на примеры.В общем случае вам не нужно создавать потоки с Qt, за исключением случаев, когда у вас есть блокирующий API , который, как я полагаю, ваш сенсорный модуль / класс равен.

Вот это Хорошее видео , показывающее в реальном времени, как создать объект, работающий в другом потоке.Вы можете попытаться внедрить LenghtyOperation в демо как ваш класс, который читает данные с ваших датчиков, а затем посылает сигналы для обновления вашего потока GUI.

Вот еще одна ссылка: Потоки без головной боли

...