我有一个 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
谢谢!