如何正确使用QThread
1个回答
展开全部
要实现一个线程很简单,写一个函数,绑定一些数据,如果有必要的话,可以使用 mutex 或者其他方法来保证和线程的安全交互。
无论是 Win32、POSIX 或其他线程,工作原理都基本相同,并相当可靠。至少我敢说比 socket 更容易使用和处理。
简述
worker-object
worker-object
使用 QThread 时,最主要的事情是把它当成一个线程对象的封装。此封装提供了信号、槽和方法,可以轻松地使用 Qt 项目中的线程对象。这说明了子类化 QThread 并实现其 run() 函数是非常错误的。
一个 QThread 应该更像一个普通线程实例:准备一个 QObject 类和所有想要的功能,然后创建一个新的QThread,使用 moveToThread(QThread *) 将 QObject 对象移动至线程中,并调用 QThread 实例的 start() 函数。就这样,再设置适当的信号/槽连接使它正常退出,所有的事情就都做完了。
无论是 Win32、POSIX 或其他线程,工作原理都基本相同,并相当可靠。至少我敢说比 socket 更容易使用和处理。
简述
worker-object
worker-object
使用 QThread 时,最主要的事情是把它当成一个线程对象的封装。此封装提供了信号、槽和方法,可以轻松地使用 Qt 项目中的线程对象。这说明了子类化 QThread 并实现其 run() 函数是非常错误的。
一个 QThread 应该更像一个普通线程实例:准备一个 QObject 类和所有想要的功能,然后创建一个新的QThread,使用 moveToThread(QThread *) 将 QObject 对象移动至线程中,并调用 QThread 实例的 start() 函数。就这样,再设置适当的信号/槽连接使它正常退出,所有的事情就都做完了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询