C++ (Qt)std::atomic<int>prev, cur;const int updateStep = 100; #pragma omp parallel forfor (int i = 0; i < vec.size(); ++i) { DoCalc(vec[i]); ++cur; #pragma omp master // обновляем индикатор в главной нитке через каждые 100 итераций { if (cur - prev >= updateStep) { UpdateIndicator(cur - prev); prev = cur; } }}
C++ (Qt)result += qHash(i);
C++ (Qt)if (promise.isCanceled()) return
C++ (Qt)void Widget::pause(int ms){ QEventLoop el; QTimer t; connect(&t, SIGNAL(timeout()), &el, SLOT(quit())); t.start(ms); el.exec();}