我从线程X中的对象一个接一个地发出两个信号A和B,并且两个连接的槽位于主线程中.连接是QueuedConnection(由于多线程连接).我的问题是:在调用插槽时信号的顺序是否受到尊重,或者它们是否有可能以任意顺序执行?
您的两个信号都将在X线程的单个事件队列中排队,因此将按照发出的信号顺序执行相应的槽.
但在以下情况下,您不能依赖插槽执行顺序:
signal A connected to a slot in X thread
signal B connected to a slot in Y thread
Run Code Online (Sandbox Code Playgroud)
此外,还有一种Qt::BlockingQueuedConnection连接类型.如果使用它连接第一个信号,则当前线程将被阻塞,直到另一个线程中的相应插槽完成其工作.