私はスレッドを使ったプログラミングにまったく慣れていません。クラスはQThreadsを使用しているので、なぜQThreadのstart
関数をそれ自体の内部から呼び出して、そのrun
関数を別のスレッドとは独立して実行し始めることができないのか疑問に思います(プログラムはクラッシュするようです。これを行う)。代わりに、オブジェクトが宣言された場所からstart関数を呼び出す必要があります。どうしてこれなの?
いくつかのコード:
class ClassWithThread : public QThread
{
public:
ClassWithThread() {}
someFunction() {start();}
run()
{
//do some stuff here
}
}
それは基本的に私のクラスが行うことです。プログラムを呼び出すとsomeFunction
クラッシュします。start
ただし、ステートメントを削除し、プログラムの外部からsomeFunction
呼び出すと、正常に機能します。start