У меня есть цикл for, который будет работать фиксированное число раз, обычно в диапазоне 100-300, в зависимости от ввода. Каждая итерация этого цикла вызывает функцию, для которой я хочу быть потоковой. Функция нитку хватается данные из входного файла, делает некоторые вещи с ним, а затем записывает его в новом формате в выходной файл ...Threading a function in Qt
Вот код высокого уровня:
void myClass::processFile()
{
...
for (int index = 0; index < 200; index++)
{
//Function or loop to thread
generateData(someMapOfMaps1[index], someMapOfMaps2[index]);
}
}
Тогда внутри generateData в же класса:
void myClass::generateData(QMap<float, foo*> mapA, QMap<float, foo*> mapB)
{
//read in data from a file
//process data
//write data to a different file
}
Я играл вокруг с QtConcurrent::run()
и QtConcurrent::mapped()
, но не имею большой л UCK. Я считаю, что mapped()
был бы отличным выбором, но моя функция занимает 2 карты вместо одного.
Я использовал это как ресурс, вокруг ползуна 25: http://www.develer.com/promo/workshop/enhancing_with_multi_threading.pdf
Спасибо!