1

これが私のシナリオです: dll があります (バックエンドに Qt があり、イベント ループが開始されていません)。この dll でシグナルスロット通信を実行できます (スレッドは 1 つだけです)。この dll で QFileSystemWatcher の機能を使用したいと思います。しかし、QFileSystemWatcher は独自のスレッドを開始するように見えますが、イベント プロセスがないため、メイン スレッドと通信できません。

したがって、基本的には、ブロックされることなくイベント処理を開始する方法が必要です!

4

1 に答える 1

0

したがって、基本的には、ブロックされることなくイベント処理を開始する方法が必要です!

というわけで、基本的にはコメントの議論に基づいてを使用QEventLoopせずに機能を使用したいと考えています。QEventLoop実際にイベント ループを発生させるには、本質的に「QEventLoopブロック」する必要があります。

イベントループを内部に持つ「ブロッキング」スレッドをいつでも作成できますが、その場合、シグナルスロット管理がその特定のスレッドに結び付けられる可能性があります。

これはイベント ループを使用する通常の方法ではありませんが、具体的なシナリオによっては、この特殊なケースでは十分な場合があります。

于 2013-12-26T05:02:33.150 に答える