問題タブ [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.
qt - QEventLoop が QNetworkReply の終了を同期的に待機していない
サーバーを呼び出す Qt を使用してライブラリを構築しています。HTTP 応答 (QNetworkReply オブジェクト) を待機する同期関数を構築する必要があり、これを実現するために QEventLoop を使用しています。現在、サーバーは呼び出されますが、ループは応答が終了するのを待たず、代わりに空の QNetworkReply オブジェクトを続行します。
まったく同じ関数が、1 つのスレッドと main からこの関数への呼び出しのみを含む、私が構築した単純なテスト プロジェクトで機能します。返信が待たれ、すべてが期待どおりに機能します。しかし、複数のスレッドを含む私のプロジェクトでは、上記のシナリオが発生し、イベント ループは応答を待ちません。要求はサーバーに送信され、そこに表示されますが、関数が既に実行されているため、応答が QNetworkReply オブジェクトに返されません。
これが私の機能のネットワークセクションです。私のプロジェクトでは、statusCode 変数は常に 0 になり、応答は空になりますが、単純なテスト シナリオでは 200 であり、期待される HTTP 応答です。
c++ - QObject子クラスがQGuiApplicationイベントループを検出しない
QObject から派生したクラスで QTimer を開始しようとすると、警告が表示されます
QObject::startTimer: タイマーは QThread で開始されたスレッドでのみ使用できます
そしてタイマーが動かない。ここの回答に基づいて、カスタム クラスが QGuiApplication によって作成された QEventLoop を検出していないようです。
私のmain.cpp
私のクラスA.h
私のclassA.cpp
新しい QEventLoop を作成せずに修正するにはどうすればよいですか?