【发布时间】:2019-12-07 08:24:25
【问题描述】:
在 C++ Builder 10.3.3 中,我使用以下测试代码:
int count = 500;
_di_ITask* task = new _di_ITask[count];
ProgressBar1->Position = 0;
for(int i = 0; i < count; i++){
task[i] = TTask::Create([i, this](){
// do something...
Sleep(10);
});
task[i]->Start();
//ProgressBar1->Position = numberOfFinishedTasks;
//Application->ProcessMessages();
}
TTask::WaitForAll(task, count - 1);
在这种情况下,有 500 个测试任务,我希望我的 ProgressBar 组件显示当前已完成任务的数量。我不知道如何获得该信息。谢谢!
【问题讨论】:
-
在每个任务结束时增加一个原子计数器?
-
@AlanBirtles 问题是如何获取这些信息。
-
@Tracer 每个任务都必须“报告”我已完成,例如增加一个原子计数器。 (然后触发重绘左右)
-
但是……您自己创建这些任务。不能在
Sleep(10)之后插入吗? -
@Dima
TTask是 Embarcadero 的 Parallel Programming Library 的一部分。
标签: delphi c++builder