2012-02-14 116 views
2

我有一个for循环,运行固定次数,通常在100-300范围内,具体取决于输入。此循环的每次迭代调用一个我想要进行线程化的函数。从输入文件线程获取数据的功能,做一些事情吧,然后在新的格式输出文件写入出来...在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()发挥各地,但并没有多少升科军。我相信mapped()将是一个不错的选择,但我的功能需要2张地图,而不是一张。

我用这个作为一种资源,围绕滑动器25:http://www.develer.com/promo/workshop/enhancing_with_multi_threading.pdf

谢谢!

回答

0

把lo op,文件读/写,'some stuff',线程中的很多。试图在每个循环中调用一个函数调用,太好了,可以避免太多的线程间通信。将filespecs等打包到一个myClass对象中,发信号给线程并让它去...