Мне нужно снова и снова запускать одну и ту же функцию для большого объема данных.QtConcurrent :: запуск продолжается после создания нового потока
Здесь я буду использовать QtConcurrent::run
, чтобы одновременно работать с 5 объектами. Это мой код, который предназначен toloop через для каждого набора данных:
for (int j = 0; j < (dataset.size())/3; j++){
int i = 0;
while (i < 2) {
QtConcurrent::run(this, &SomeObject::doWork, dataset.at(i+3*j));
i++;
}
}
Проблема: я заметил, что бывают случаи, когда doWork
не вызывается для некоторых данных в наборе данных. Поскольку this QT Documentation говорит, я считаю, что нить не создается для недостающих данных. Как я могу гарантировать, что я имею дело с 2 dataSet в одно и то же время (и получение успешных результатов), прежде чем вызывать следующую пару?