【发布时间】:2013-05-24 02:01:31
【问题描述】:
在我的代码中,一个工作线程发出一个信号。
来自Qt Docs:
Qt::BlockingQueuedConnection - 与 QueuedConnection 相同,除了当前线程阻塞直到槽返回。这种连接类型应该只用于发射器和接收器在不同线程中的情况。 注意: 违反此规则可能会导致您的应用程序死锁。
如何确定发射器和接收器何时在不同的线程中。我对此有一些模糊的想法,因为在我添加Qt::BlockingQueuedConnection 标志之前,我的应用程序存在问题。但知道我的应用程序不想关闭。它被工作线程卡住了。
更新:
我对问题进行了更多调查。线程被发出的信号阻塞。因为当我关闭应用程序时,插槽(在 MainWindow 中)被破坏,并且发出信号会产生这个死锁。
如何解决这个问题?
【问题讨论】:
标签: multithreading qt