-1

我使用 MS Visual Studio 2010、C++、PPL 库进行并行计算和 Qt 库。

Concurrency::parallel_for (size_t(0), m_Engines.size(), [&](size_t i)
{
    for (size_t j = 1;j <= m_Iterations;j++)
    {
        Compute(i);//some time-cosuming thing           
    }
});

假设我们有 3 个独立的引擎,m_Iterations每个引擎都有。每个引擎的进度条如下所示:

进展一:||||||||

进度2:|||||

进度3:|||||||||||

我想要单个进度条(而不是上面显示的),它显示向后的进度条(其中显示最小值):

总进度:|||||

让我们假设我们有QProgressBar * pProgressbarCoreApplication::processEvents()代码片段”。我应该如何修改代码以使用并发运行时技术实现内部循环的单个进度条的想法。

4

1 回答 1

1

为了显示最短时间,您可以在函数旁边使用 QWaitCondition 或者您可以编写单独的函数来通知一个 m_Iterations 完成。让我们假设,当前您正在执行 3 个并行计算引擎,编写 QWaitCondition 以指示其他迭代完成它们的工作。

于 2012-05-03T07:03:33.130 回答