I'm using concurrency::parallel_for loops (window specific) which are convenient to loop over large three dimensional data sets. I not sure how to best give the main thread time so I can update a QProgressbar....
Do you start the calculations in a second thread?
If not I would move the calculations into a separate thread and emit signals from there to tell the main thread what the current progress is. In this case the main thread should not be blocked.