0

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

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

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

谢谢并恭祝安康

4

1 回答 1

0

如果您想知道您是否有错误或者您是否完成了该过程,只需创建两个信号,而不是一个,和两个插槽,而不是一个。

Qt 文档中,您有一个示例,其中包含处理结果的连接:

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

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

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

当然,另一种选择是简单地将参数与您的信号/插槽一起传递。这是一个函数调用,如果您将 someenum与 status 或 some放在一起,就可以了int

于 2018-11-01T09:16:30.950 回答