QFuture在result()中抛出未处理的异常

时间:2012-04-05 09:50:10

标签: c++ multithreading qt parallel-processing qtconcurrent

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

谢谢和问候。

0 个答案:

没有答案