2

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

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

我尝试使用QMutex,但这卡住了整个 GUI 线程。

对此的常见/正确解决方案是什么?

4

1 回答 1

2

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

于 2012-05-12T06:18:55.960 回答