1

ループ内でN 個のスレッドを起動し、別のループでそれぞれを待機した後、「QWaitCondition: スレッドがまだ待機している間に破棄されました」というメッセージが表示されます。

コードは次のとおりです。

int nb_threads = QThread::idealThreadCount();
QFuture<void> futures[nb_threads];
bool shared_boolean;
// launch threads
for(int i = 0;i<nb_threads;++i){
    futures[i] = QtConcurrent::run(this,gpMainLoopMT,&shared_boolean,&next_pop_size,next_population);
}

// wait for threads to finish
for(int i = 0;i<nb_threads;++i){
    futures[i].waitForFinished();
}

各スレッドを待っている間、なぜこれが起こっているのかわかりません。

4

2 に答える 2