在呼叫退出后重新启动QThread合法且明智



根据Qt手册QThreadquit()函数等待当前任务终止,然后结束事件循环。在打电话给quit()wait()正确终止后,使用 start() 再次启动相同的 QThread 实例是否合法。代码似乎工作正常,但重新启动后线程 ID 更改。文档中没有提到这一点,所有示例似乎都在创建一个新的 Thread 实例或不调用 quit,所以我想知道。

是的,如果线程已正确停止,则再次启动线程是合法的。

这就是文档对线程 ID 的描述(强调我的):

Qt::HANDLE QThread::currentThreadId()

返回当前正在执行的线程的线程句柄。

警告:此函数返回的句柄用于内部 目的,不应在任何应用程序代码中使用

所以你不应该关心线程 id 的更改。

最新更新