QT开发中文网

QThread will notifiy you via a signal when the thread is started() and finished(), or you can use isFinished() and isRunning() to query the state of the thread. You can stop the thread by calling exit() or quit(). In extreme cases, you may want t...

QThread会通过信号通知您线程何时开始(started())和结束(finished()),或者您可以使用isFinished()和isRunning()查询线程的状态。

您可以通过调用exit()或quit()来停止线程。在极端情况下,您可能需要强制终止执行中的线程。但是,这样做是危险的,不鼓励使用。请阅读terminate()和setTerminationEnabled()的文档以获取详细信息。

从Qt 4.8开始,可以通过将finished()信号连接到QObject::deleteLater()来释放在刚刚结束的线程中运行的对象。

使用wait()阻塞调用线程,直到另一个线程执行完成(或直到指定的时间过去)。

QThread还提供了静态、跨平台的睡眠函数:sleep()、msleep()和usleep()分别允许完整的秒、毫秒和微秒分辨率。这些函数在Qt 5.0中公开。

注意:一般情况下,wait()和睡眠函数应该是不必要的,因为Qt是一个事件驱动的框架。要代替wait(),考虑监听finished()信号。要代替睡眠函数,考虑使用QTimer。

静态函数currentThreadId()和currentThread()返回当前正在执行的线程的标识符。前者返回线程的特定于平台的ID;后者返回一个QThread指针。

要选择为您的线程分配的名称(例如在Linux上通过ps -L命令识别),可以在启动线程之前调用setObjectName()。如果您不调用setObjectName(),则为您的线程指定的名称将是您的线程对象的运行时类型的类名(例如,在Mandelbrot示例中,这是QThread子类的名称”RenderThread”)。请注意,这在Windows的发布版本中当前不可用。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=758

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?