0

Qt でスレッドを実行するとstart()、それが実行されているかどうかを確認できQThread::isRunning ()ます。trueスレッドがまだ実行中の場合に戻ります。呼び出した後quit()、スレッドを終了できます。

今私の質問:

を呼び出した後quit()isRunning ()クエリは を返すはずfalseです。よろしいですか? 同様QThread::isFinished ()に を返す必要がありfalseます。

この質問で、QThread の主な原則の 1 つを理解していることを確認したいだけです。

4

1 に答える 1

0

私は間違っているかもしれませんが、ドキュメントによると、quit と exit(int ) はスレッド イベント ループを終了します。ただし、スレッド イベント ループを終了しても、スレッドが終了したわけではありません。run メソッドをサブクラス化して再実装することで、イベント ループを開始することなく、別の qthread を実行することもできます。したがって、quit メソッドを呼び出しても、スレッド isFinished() が true を返すとは限りません。finished() シグナルに自分自身を接続し、完了したスレッドで必要なことを実行するだけです。

于 2013-03-19T09:49:40.933 に答える