我应该如何在Qt中解决这个线程问题?

时间:2012-05-12 06:05:45

标签: qt select qt4

我有一个GUI程序,里面有一个QLocalServer,每次从客户端获得连接时,它会弹出一个对话框询问用户该做什么。

但是当同时收到多个连接时,一堆对话框一起弹出..有没有办法排队?

我尝试使用QMutex,但这会影响整个GUI线程。

对此有什么共同/正确的解决方案?

1 个答案:

答案 0 :(得分:2)

只需使用队列数据结构,即将传入连接放入队列数据结构,然后每当对话框关闭时(比如说)检查队列中是否有更多连接;如果是,请处理下一个。当你进入连接并且队列为空时立即处理它。 QMutex阻止了GUI线程,因为很可能你没有产生任何额外的线程,它实际上是来自QLocalServer的回调,而不是一个通知你入站连接的新线程。