2

我在一个方法中运行 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 类中程序崩溃。现在我猜来源不同,但我无法弄清楚出了什么问题。

谢谢并恭祝安康。

4

0 回答 0