問題タブ [qeventloop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
172 参照

qt - QEventLoop が QNetworkReply の終了を同期的に待機していない

サーバーを呼び出す Qt を使用してライブラリを構築しています。HTTP 応答 (QNetworkReply オブジェクト) を待機する同期関数を構築する必要があり、これを実現するために QEventLoop を使用しています。現在、サーバーは呼び出されますが、ループは応答が終了するのを待たず、代わりに空の QNetworkReply オブジェクトを続行します。

まったく同じ関数が、1 つのスレッドと main からこの関数への呼び出しのみを含む、私が構築した単純なテスト プロジェクトで機能します。返信が待たれ、すべてが期待どおりに機能します。しかし、複数のスレッドを含む私のプロジェクトでは、上記のシナリオが発生し、イベント ループは応答を待ちません。要求はサーバーに送信され、そこに表示されますが、関数が既に実行されているため、応答が QNetworkReply オブジェクトに返されません。

これが私の機能のネットワークセクションです。私のプロジェクトでは、statusCode 変数は常に 0 になり、応答は空になりますが、単純なテスト シナリオでは 200 であり、期待される HTTP 応答です。

0 投票する
1 に答える
36 参照

c++ - QObject子クラスがQGuiApplicationイベントループを検出しない

QObject から派生したクラスで QTimer を開始しようとすると、警告が表示されます

QObject::startTimer: タイマーは QThread で開始されたスレッドでのみ使用できます

そしてタイマーが動かない。ここの回答に基づいて、カスタム クラスが QGuiApplication によって作成された QEventLoop を検出していないようです。

私のmain.cpp

私のクラスA.h

私のclassA.cpp

新しい QEventLoop を作成せずに修正するにはどうすればよいですか?