2017-09-19 16 views
1

私はnew QThread(this)new QThread()の間にどのような違いがあるのか​​を知りたいと思います。​​を使用すると、これが自分のコードの動作にどのように影響するのでしょうか。Qt-新しいQThread(this)と新しいQThread()の違いは何ですか?

+5

[parents](http://doc.qt.io/qt-4.8/objecttrees.html)がQtに含まれていることをご存知ですか? –

+1

違いは、誰がQThreadオブジェクトの所有権を取得するかです。 'this'を親として渡すと、 'this'の親はQThreadオブジェクトのリソースを解放する必要があります。リソース管理だけでQThreadの動作に影響を与えることはありません。 – Simon

+1

@Simon '〜QThread'の注釈のほかに、実行中のスレッドを破壊する – Caleth

答えて

5

QThreadの親は、何も差異を生じません。は、誰が何を実行するかです。
Qtの古典的な親子関係であるObject-Treeは、親がQThreadインスタンスの所有権を取得し、その子が削除されるとその子を削除することを意味します。


それは何のQtでのスレッドに来るとき重要なのは

  • であるあなたはQObjectのインスタンスを作成します(デフォルトではオブジェクトはそれを作成したスレッドに属している)
  • の親QObjectインスタンス(QObject::moveToThread(QThread *targetThread)を実行すると、オブジェクトのすべての子も移動されます)

QObjectのスロットは、 tはに属します。

関連する問題