gpt4 book ai didi

c++ - 在 Qt : a reasonnable design or nonsense? 中为数据库创建线程

转载 作者:搜寻专家 更新时间:2023-10-31 01:18:52 25 4
gpt4 key购买 nike

我尝试使用 Qt 设计的应用程序是数据密集型的;它本质上是一个数据库。我正在寻找一种能让我保持 UI react 的设计。我的猜测是我应该只在主线程中保留 UI,并为数据库创建一个线程。
然而:
- 创建一个继承自 QThread 的数据库对象似乎不是一个自然的设计(run() 会是什么?)
- 我假设我需要为 UI/核心交互使用信号和槽;但是这个功能在 Qt 中似乎是最近才出现的,所以我想知道我的“设计”是否有误。
- QObject 后代显然设计为存在于创建它们的线程中,因此我担心模型(从数据库线程)到 UI 线程的通信会出现问题。

感谢您的评论。

最佳答案

您可以考虑使用 QtConcurrent::run() .您将传递所需的功能。它会假脱机一个线程来运行函数并给你一个 QFuture您可以使用它来获得最终结果。您可以轮询 QFuture 以查看它是否 isFinished()。然而,更好的方法可能是使用 QFutureWatcher它会为您监视 QFuture 并在完成时发出信号。请参阅 QFutureWatcher 中的示例代码简介。

关于c++ - 在 Qt : a reasonnable design or nonsense? 中为数据库创建线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6737260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com