比如一个纯耗cpu的函数accumulate, 计算 1+2+3+4+...N
uintmax_t accumulate(uintmax_t max) {
uintmax_t ret;
for(uintmax_t i = 1; i <= max; i++) {
ret += i;
}
return ret;
}
1. 假设accumulate(1000000)大约需要10秒,如果在算法里加上QApplication::processEvents()这种,这样函数执行时间大大增加
2. 而且每次循环都processEvents的话,太耗时了,如果 if(i % 10000 ==0) processEvents() 这种条件来判断,就不是按时间更新了,不能做到精确1秒更新一次进度条。
请教有什么好办法