gpt4 book ai didi

c++ - QWaitCondition,除了手动重置? (或者在 Qt Concurrent 之外创建 QFuture 对象?)

转载 作者:太空宇宙 更新时间:2023-11-04 13:44:39 24 4
gpt4 key购买 nike

Qt 是否提供与Concurrency::event 行为方式大致相同的同步原语?来自 Microsoft 的并发运行时?

具体来说,我希望线程 A 中的 wait() 返回,即使它在线程 B 已经调用 wakeAll() 之后但在调用“重置”函数之前不调用 wait() 也是如此。另外,我希望 reset() 和 set() 不必从同一个线程调用。

基本上,如果我不需要在特定线程中运行异步操作(在我的情况下,它基本上将任务提供给 OpenGL 渲染线程),QFuture 和 Qt Concurrent 将是完美的。

如果没有特别提供,有没有办法用 Qt 模拟该功能?

谢谢!

最佳答案

我认为我过去也需要 QFuture 几次,但最终总是使用信号和插槽在线程之间传递消息,携带我将作为参数放入 QFuture 的数据。特别是当我的线程底部有一个 QEventLoop 时。

如果没有事件循环,我通常最终会使用 QWaitCondition、QMutex 和 QMutexLocker 手动完成。

很遗憾,我会说没有任何更高级别的类(class)符合您的描述。

关于c++ - QWaitCondition,除了手动重置? (或者在 Qt Concurrent 之外创建 QFuture 对象?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26473335/

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