ParallelProgress
CoDo Parallel loop with progress indicator
main.cpp
#include <CtrlLib/CtrlLib.h>
using namespace Upp;
GUI_APP_MAIN
{
Progress pi("Working on many items at once...", 100);
std::atomic<int> ii(0);
CoDo([&] {
for(int i = ii++; i < 100; i = ii++) {
for(int q = 0; q < 1000; q++) {
if(pi.Canceled()) // ideally call Canceled every 1-10ms
return;
Sleep(1); // work simulation
}
pi.Step();
}
});
}
|