我在QTConcurrent::run中使用QFuture 在后台线程中运行一些代码。我想从主线程中检测此后台代码中的异常。

根据Notification about exceptions in QtConcurrent::run,当您请求将来的结果时,将重新引发异常。不幸的是,QFuture 没有结果函数。

我可以通过使函数返回一个int值,然后使用QFuture 而不是QFuture 来解决此问题,但是添加一个返回值只是为了能够检测异常似乎有点不正常。

有没有一种方法可以使用QFuture 检测异常?

最佳答案

是的,尽管QFuture 没有“result()”函数,但它确实具有可用于此目的的“waitForFinished()”函数。

10-07 23:47