Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 使用QThread类进行QT编程的帮助,如何使用它_Multithreading_Qt_Qthread - Fatal编程技术网

Multithreading 使用QThread类进行QT编程的帮助,如何使用它

Multithreading 使用QThread类进行QT编程的帮助,如何使用它,multithreading,qt,qthread,Multithreading,Qt,Qthread,所以我意识到上次我的解释不太清楚,所以我会再试一次 我有一个程序,它有一个传感器类,每40毫秒左右从乐高NXT传感器获取一个值。我还有另一个draw类(我相信运行在同一线程中),它在虚拟世界中使用opengl每1毫秒绘制和移动一次汽车。现在的问题是,每当我的传感器获取信息时,汽车都会非常迟钝,移动缓慢,但当传感器关闭,无法获取和输入数据时,汽车就会平稳运行。我如何解决这个问题,我相信我需要创建另一个线程,但我不知道如何做到这一点 注意:传感器与车辆无关 要给出线程的一般答案并不容易。Qt为您提供

所以我意识到上次我的解释不太清楚,所以我会再试一次

我有一个程序,它有一个传感器类,每40毫秒左右从乐高NXT传感器获取一个值。我还有另一个draw类(我相信运行在同一线程中),它在虚拟世界中使用opengl每1毫秒绘制和移动一次汽车。现在的问题是,每当我的传感器获取信息时,汽车都会非常迟钝,移动缓慢,但当传感器关闭,无法获取和输入数据时,汽车就会平稳运行。我如何解决这个问题,我相信我需要创建另一个线程,但我不知道如何做到这一点


注意:传感器与车辆无关

要给出线程的一般答案并不容易。Qt为您提供了各种实现线程的类,因此最好看一看示例。一般来说,您不需要使用Qt线程,除非您有一个阻塞api,我猜您的传感器模块/类是

下面是一个实时演示如何创建在另一个线程上运行的对象。您可以尝试在演示中实现
LenghtyOperation
,作为从传感器读取数据然后发出信号以更新GUI线程的类


这是另一个链接:

签出-这显示了如何创建一个线程和到适当文档的链接。这个问题太广泛了。这就好像你要的是QThread文档和关于线程是什么、何时以及如何使用它们的概述。这段视频非常好(而且相对较新),演示了如何正确地将QThread与QObject的子类(而不是QThread子类)一起使用。它似乎也涵盖了其他多线程选项。您的第一个网页链接(虽然已经过时)提示使用QThread的正确方法。尽管第二个和第三个链接指向当前文档,但该文档仍然不正确,建议将QThread子类化。呃,最后两个链接是为了完整性。。。正在考虑将它们标记为“旧方式”,但不确定这是否是正确的方式。。。因此,我已经编辑并删除了它们-感谢+1包括视频。我已经玩QThreads几个月了,但在视频播放到一半的时候,我才知道我让使用QThreads变得更加困难了。@DerickSchoonbee,你的视频链接断了。