如何监控QThread



我正在开发Qt应用程序。在那里,我希望工作线程在后台做一些活动,我希望主线程控制它,如果工作线程由于某种原因死亡,则重新启动它。我已经看到线程发出的finished((信号,所以我想我可以将插槽连接到它

这是推荐的方式吗?如果没有,我怎么能做到呢?

如果我使用finished((信号,我如何知道正常终止和错误之间的区别?

感谢并问候

如果您想知道是发生了错误还是进程已经完成,只需创建两个信号而不是一个,以及两个插槽而不是一。

在Qt文档中,您有一个示例,其中有一个连接来处理结果:

connect(workerThread, &WorkerThread::resultReady, this, &MyObject::handleResults);

您在这里将信号resultReady与处理结果的任何方法连接起来。您创建了另一个与此完全相同的,但带有一个错误信号和一个错误处理程序。

connect(workerThread, &WorkerThread::errorThrown, this, &MyObject::handleErrors);

当然,另一种选择是简单地将参数与信号/插槽一起传递。这是一个函数调用,如果你把一些enum和它放在一起作为状态,或者放一些int,就可以了

相关内容

  • 没有找到相关文章

最新更新