問題タブ [qthread]

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 投票する
1 に答える
1788 参照

python - スレッドからデータを受信した後、pyqtのメインウィンドウがクラッシュし続ける

QThreadを開始し、ネットワークからのデータを待機するQMainWindowがあります。データを受信するとUIを更新します。

問題は:時々クラッシュすることです。そして時々そうではありません、私がするすべては私がそれを始めてデータを待つことです。

これがスレッドクラスです:

なぜこうなった ??メインウィンドウ自体は正常に機能することに注意してください。

関数(updateCombo)も正常に機能しています(クラスから呼び出す場合)。

しかし、データを送信するとメインウィンドウがクラッシュし続けます!理由は何ですか?

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

qt - QThreadからGUIウィンドウを開始するにはどうすればよいですか?

クライアントがシングルスレッドであるチャットプログラムに取り組んでいますが、サーバーは接続されたクライアントごとに新しいスレッドを開始します。私のクライアントコードはしっかりしていると思いますが、サーバーは私を当惑させています。

現在、QTcpSocket着信接続を検索する派生クラスがあり、接続が検出されると、新しいを開始しQThreadます。実行すると、 (チャットウィンドウである)QThreadのインスタンスが作成され、表示されます。QMainWindow

次のようなstderrorのエラーが発生していますが、QMainWindow表示されないため、現時点ではチャットできません。

私の質問は次のとおりです。

  • QThreadの親にする必要がありQMainWindowますか?
  • 私はこれを完全に間違った方法で行っていますか?
  • これが期待どおりに機能しない理由や修正方法に関するその他の一般的なアイデアも大歓迎です。
0 投票する
2 に答える
422 参照

multithreading - シグナル/スロットが複数のスレッドで機能しないのはなぜですか?

なぜ呼び出されないのかを理解しようとしてb_slot()います。何が起こっているのか、なぜb_slot()呼び出されないのかを誰かが説明できますか?

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

c++ - QThreadで作成されたQObjectは、内部信号/スロット接続を失います

派生オブジェクトが作成されるワーカーQThreadがあります。QObjectオブジェクトは、他の2つの派生オブジェクトの集合体であるQObjectため、2つの内部オブジェクトを信号でリンクおよびバインドするための内部接続があります。

ワーカーQThreadはのメンバーであるQPluginため、プラグインの存続​​期間中ずっと存在します。

私が抱えている問題は、オブジェクトがアプリケーションの他の部分と正常に相互作用しているにもかかわらず、それらの内部接続が壊れているように見えることです。実験として、メインスレッドでオブジェクトを作成しようとしましたが、内部接続が機能しているので、これは間違いなく私が間違っていることですQThread

また、オブジェクトをメインスレッドに戻してみましたが(確かに、これらの内部接続が確立された後)、効果はありませんでした。内部接続のすべてのタイプの接続(直接、キューなど)を循環しましたが、効果がないか、デッドロックエラーが発生しました。接続を通過したすべてのタイプが登録されます。

オブジェクトは含まれている2つのオブジェクトの親QObjectであり、すべて同じスレッドに存在するため、違いはありませんが、除外するために親をNULLに設定してみましたが、当然のことながら効果はありませんでした。は何の親でもQThreadありません。

私が確信していない唯一のことは、オブジェクトがメインスレッドにあるファクトリシングルトンから作成されているが、ワーカースレッドから呼び出されているということです-それで、それは誰に属しているのですか?私はこれらの接続を切断するために何をしているのか(またはしていないのか)について完全に途方に暮れているので、どんな助けでも大歓迎です。アプリケーションの関連部分のコードは次のとおりです。

これはワーカースレッドでのオブジェクト作成呼び出しです。コンテキストでは、オブジェクトはOBJインポーターからのポリメッシュです。

私のアプリには非常に広範なプラグインアーキテクチャがあるため、実際のスレッド開始コードは抽象ワーカークラスに抽象化されます。

関連するすべてのコードが多くのクラスに分散しているため、すべてをリストすることはしません(この質問は十分に長いです)が、他に何かを見る必要がある場合は、遠慮なく質問してください-私はこれについて得ることができるすべての助けが必要です1。

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

qt - Object::connect: そのようなシグナルはありません MyThread::MySignal()

  1. 私のプログラムには 1 つのスレッド クラスがあります。
  2. シグナルスロットは両方とも、そのスレッド クラス自体にあります。
  3. ヘッダー ファイルとソース ファイルは別です。
  4. main ()関数はソース ファイル自体にあります。

main ()では、次のようにconnectを使用しています。

.proファイルは次のとおりです。

実行時に上記のエラーが発生しました。ガイドしてください。

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

c++ - QReadWriteLock 再帰モードが機能しない

gcc 4.4.3 を使用する Linux qt 4.7.4 では、次のコードは正常にコンパイルされ、実行時エラーは発生しません。

ロックは同じスレッドによって数回ロックされ、何も起こりません。マニュアルによるとhttp://doc.qt.io/archives/qt-4.7/qreadwritelock.html

ロックは、同じスレッドによって一度だけロック可能であるべきです。これは重大なバグですか、それともマニュアルを誤解していますか?

Chris への返信: ロックは NonRecursive でも数回ロック解除する必要があります。1 つのロック解除がコメント アウトされている場合、次のコードは "Writing" を出力しません。

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

qt - qthreadを使用したqt emitの奇妙な動作

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

qt - イベントリストにイベントが多すぎる場合、なぜアプリケーションがクラッシュしたのですか?

次のコードはクラッシュし、Linuxをハングさせることさえありますが、それについて何かアイデアはありますか?

0 投票する
0 に答える
488 参照

pyqt4 - スレッドの使用時にQWebPage loadFinishedシグナルが呼び出されませんか?

セカンダリ スレッドで webkit を使用してネットワーク リクエストを実行しようとしています。また、同じスレッドでデータの破棄などのすべての処理を実行しようとしています。しかし、QWebPage のシグナル loadFinished が接続されていない理由がわかりません。まだまだ勉強中なので教えてください。