【发布时间】:2014-02-20 09:28:12
【问题描述】:
我正在使用 Qt5,QCoreApplication。 为了使代码可读且易于维护,我需要在类/线程 A 中编写一个阻塞方法,该方法将发出信号,连接到不同线程 B 中的插槽,然后等待答案或超时在线程 B 中异步发生。 我首先考虑的是一个自然的解决方案:让线程 B 回复一个连接到线程 A 中插槽的信号,然后以某种方式等待它。似乎 QEventLoop 可以为我做到这一点。但是我一直在阅读相互矛盾的陈述:这就是模式,但如果可以的话,请避免它:-)。 我很确定我可以通过在 B 准备好时释放的 0 QSemaphore 上阻止 A 来实现我的目的。这样,代码可能不会复杂得多。 有经验的 Qt 开发人员怎么看? 有没有好的解决方案,或者您是否在我的描述中发现了一些分析缺陷的症状(即您认为我永远不需要做这样的事情吗?:-))?
【问题讨论】:
标签: c++ multithreading qt