我在一个方法中运行3个并行线程(加上当前线程)来并行调用na优化方法。代码看起来像
for(i=0;i<m+1;i++)
{ // run algorithms
solverParallelData* parallelData = new solverParallelData(this);
for(j=0;j<m_ndim;j++)
{
initPt[j] = initPts[i][j];
}
parallelData->runOptim(initPt);
dataList.append(parallelData);
}
// retrieve results
solverParallelData *parallelDataRes;
try
{
for(int i = 0; i < dataList.size(); i++)
{
parallelDataRes = dataList.at(i);
int output = parallelDataRes->resultOptim();
/*...*/
}
其中resultOptim()是solverParallelData中一个简单调用QFuture result()的方法。 dataList似乎正确填充。但是,行
int output = parallelDataRes->resultOptim();
给出了一个我无法识别的未处理异常。以前,我在QMutex类中遇到了并发访问和程序崩溃的问题。现在我猜源不同,但我无法弄清楚出了什么问题。
谢谢和问候。