ultimatepp/upptst/ProgressMT/main.cpp
cxl 45bc92d39c .upptst
git-svn-id: svn://ultimatepp.org/upp/trunk@14295 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2020-04-11 21:10:17 +00:00

38 lines
693 B
C++

#include <CtrlLib/CtrlLib.h>
using namespace Upp;
class Test: public TopWindow{
public:
typedef Test CLASSNAME;
MenuBar menu;
void Worker(){
Progress pi("Working on many items at once...", 100*1000);
std::atomic<int> ii(0);
CoDo([&] {
for(int i = ii++; i < 100; i = ii++) {
for(int q = 0; q < 1000; q++) {
if(pi.StepCanceled()) // ideally call Canceled every 1-10ms
return;
Sleep(1); // work simulation
}
}
});
}
void MainMenu(Bar &bar){
bar.Add("Process...", THISFN(Worker));
}
Test(){
AddFrame(menu);
menu.Set([=](Bar& bar) { MainMenu(bar); });
}
};
GUI_APP_MAIN
{
Test test;
test.Run();
}