40 lines
775 B
Markdown
40 lines
775 B
Markdown
|
|
# TaskGroup::GetProgress
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
float GetProgress() const
|
||
|
|
```
|
||
|
|
|
||
|
|
获取任务组的完成进度。
|
||
|
|
|
||
|
|
**参数:** 无
|
||
|
|
|
||
|
|
**返回:** `float` - 进度值,范围 0.0f ~ 1.0f
|
||
|
|
|
||
|
|
**复杂度:** O(1)
|
||
|
|
|
||
|
|
**示例:**
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
TaskGroup* group = TaskSystem::Get().CreateTaskGroup();
|
||
|
|
|
||
|
|
for (int i = 0; i < 1000; ++i) {
|
||
|
|
group->AddTask([i]() { ProcessItem(i); });
|
||
|
|
}
|
||
|
|
|
||
|
|
// 显示进度
|
||
|
|
while (!group->IsComplete()) {
|
||
|
|
float progress = group->GetProgress();
|
||
|
|
printf("\rLoading: [%-50s] %.1f%%",
|
||
|
|
std::string(50, '=').substr(0, (int)(progress * 50)).c_str(),
|
||
|
|
progress * 100.0f);
|
||
|
|
fflush(stdout);
|
||
|
|
Thread::Sleep(100);
|
||
|
|
}
|
||
|
|
printf("\n");
|
||
|
|
```
|
||
|
|
|
||
|
|
## 相关文档
|
||
|
|
|
||
|
|
- [TaskGroup 总览](task-group.md) - 返回类总览
|
||
|
|
- [IsComplete](iscomplete.md) - 检查是否完成
|