2

内部にGUIプログラムがあり、QLocalServerクライアントから接続を取得するたびに、ユーザーに何をすべきかを尋ねるダイアログがポップアップ表示されます。

しかし、複数の接続が同時に受信された場合、多数のダイアログが一緒に表示されます..それらをキューに入れる方法はありますか?

を使おうとしましQMutexたが、GUIスレッド全体が動かなくなりました。

これに対する一般的/正しい解決策は何ですか?

4

1 に答える 1

2

キューデータ構造を使用するだけです。つまり、着信接続をキューデータ構造に入れ、ダイアログが閉じられるたびに (たとえば)、キューにさらに接続があるかどうかを確認します。はいの場合、次のものを処理します。接続を取得し、キューが空の場合は、すぐに処理します。ほとんどの場合、追加のスレッドを生成していないため、QMutex は GUI スレッドをブロックします。これは実際には QLocalServer からのコールバックであり、インバウンド接続を通知する新しいスレッドではありません。

于 2012-05-12T06:18:55.960 に答える