У меня есть цикл for, который будет выполняться фиксированное количество раз, обычно в диапазоне 100-300 в зависимости от входа.Каждая итерация этого цикла вызывает функцию, к которой я хочу подключиться.Функция для извлечения данных извлекает данные из входного файла, делает с ним что-то и затем записывает их в новом формате в выходной файл ...
Вот код высокого уровня:
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()
, но не смогмного удачи.Я считаю, что mapped()
был бы отличным выбором, но моя функция использует 2 карты вместо одной.
Я использовал это как ресурс вокруг слайда 25: http://www.develer.com/promo/workshop/enhancing_with_multi_threading.pdf
Спасибо!