使用 Qthread 将预定义的类移动到线程中
我不是一个很棒的程序员,而且对 QT 很陌生,对我的措辞感到抱歉。
我已经在 Qt 中与 main 不同的 .cpp 文件中创建了一个传感器类,每当我运行我的程序时,它都运行缓慢且滞后,因此我的教授建议为该类创建另一个线程来从传感器检索值。我想知道将此类移动到一个单独的新线程中,我只需将所有内容(函数调用、信号等)复制并粘贴到新 Qthread 的 run() 函数下即可。
如果这不是这个过程,一些基本术语的帮助将非常有益,我不太了解 QT 索引信息。
谢谢
I am not too great a programmer and quite new to QT sorry for my wording.
I have an already created a sensor class in Qt in a different .cpp file from main, whenever i ran my program it ran slow and lagged so my prof suggested making another thread for the class that retrieves values from sensors. I was wondering to move this class into a seperate new thread do i just simply copy and paste everything (functions calls, signals etc..) under the run() function of the new Qthread.
If this is not the procedure some help in basic terms would be quite beneficial, I dont really understand the QT index information.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您是 Qt 新手,尤其是多线程新手,我建议您尝试 Qt 并发框架。这至少可以保护您免受崩溃和僵局的影响,而这些在没有足够经验的情况下很难发现。使用 QFuture 和 QFutureWatcher 在线程中执行函数并读取数据。
总的来说,您的描述非常笼统,因此我不确定是否可以提供如何将您的类与 QThread 一起使用的明确答案。
If you are novice in Qt and especially multi threading, I recommend you to try Qt Concurrent Framework. That will at least protect you form crashes and deadlocks that hard to find out without having enough experience. Use QFuture and QFutureWatcher to execute your function in a thread and read the data.
Overall, your description is very general so I'm not sure its possible to provide a definitive answer how to use your class with QThread.