首先,我们要理解下为什么要使用For进行并行计算?
当然是要充分利用现代计算机的多线程处理能力,以加快数据的处理速度!
那么问题来了,我们如果要求For计算的处理函数在主线程中计算,会发生什么现象?
很明显,在单一的线程中肯定扯不到并行计算,只能是一个一个的挨个执行。这是因为并行计算实际上是调用的同一个函数,而你显然不能要求QWorker智能到需要时就在主线程,不需要是就在后台线程中执行。所以,和直接用标准的for语句循环相比,反而多了不必要的额外开销,性能反而受到了损失。
而这,也就是为什么For并行计算的作业原因。