c++ - QFuture<void> 检测异常

标签 c++ multithreading qt exception qt5

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

根据Notification about exceptions in QtConcurrent::run当您请求 future 的结果时,会重新抛出异常。不幸的是 QFuture 没有结果函数。

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

有没有办法用 QFuture 检测异常?

最佳答案

是的,虽然 QFuture 没有“result()”函数,但它确实有一个“waitForFinished()”函数可用于此目的。

关于c++ - QFuture<void> 检测异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58770390/

相关文章:

c++ - 如何使用 QWebView 更改网页的默认标题

c++ - 如何安装libusb?

c++ - 未定义的枚举引用

c++ - 为什么非 const、非 int/enum 静态数据成员必须在定义之外初始化?

c++ - as-if 规则是否会阻止编译器对全局/成员变量的访问进行重新排序?

java - 如何将时间与我的 table 匹配?

spring - 使用 RedisQueueInboundGateway 进行多线程处理

c++ - 用于列出子目录中所有文件的递归函数

c# - 我可以限制同时运行的 System.Threading.Tasks.Task 对象的数量吗?

python - 去除pyinstaller中对matplotlib和qt的依赖(启动慢)