Qt是否提供了一种同步原语,其行为与Microsoft的并发运行时中的Concurrency::event几乎相同?

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

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

如果没有特别提供,是否有一种方法可以用Qt模拟该功能?

谢谢!

最佳答案

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

如果没有事件循环,我通常最终会使用QWaitCondition,QMutex和QMutexLocker手动进行操作。

因此,可悲的是,我会说没有适合您描述的更高级别的课程。

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

10-09 07:13