我有一个GUI程序,里面有一个QLocalServer
,每次从客户端获得连接时,它会弹出一个对话框询问用户该做什么。
但是当同时收到多个连接时,一堆对话框一起弹出..有没有办法排队?
我尝试使用QMutex
,但这会影响整个GUI线程。
对此有什么共同/正确的解决方案?
答案 0 :(得分:2)
只需使用队列数据结构,即将传入连接放入队列数据结构,然后每当对话框关闭时(比如说)检查队列中是否有更多连接;如果是,请处理下一个。当你进入连接并且队列为空时立即处理它。 QMutex阻止了GUI线程,因为很可能你没有产生任何额外的线程,它实际上是来自QLocalServer的回调,而不是一个通知你入站连接的新线程。