Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 GUI 程序,它有一个QLocalServer内部,每次从客户端获得连接时,它都会弹出一个对话框,询问用户该怎么做。
QLocalServer
但是当同时收到多个连接时,一堆对话框会一起弹出..有没有办法让它们排队?
我尝试使用QMutex,但这卡住了整个 GUI 线程。
QMutex
对此的常见/正确解决方案是什么?
只需使用队列数据结构,即将传入连接放入队列数据结构中,然后每当关闭对话框时(例如)检查队列上是否有更多连接;如果是,则处理下一个。当您建立连接并且队列为空时,立即处理它。QMutex 阻塞了 GUI 线程,因为您很可能没有产生任何额外的线程,它实际上是来自 QLocalServer 的回调,而不是通知您入站连接的新线程。