51 lines
1.1 KiB
Markdown
51 lines
1.1 KiB
Markdown
|
|
# TaskGroup::GetProgress
|
|||
|
|
|
|||
|
|
```cpp
|
|||
|
|
float GetProgress() const;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
获取任务组的完成进度。
|
|||
|
|
|
|||
|
|
**参数:** 无
|
|||
|
|
|
|||
|
|
**返回:**
|
|||
|
|
- `float` - 0.0 到 1.0 之间的进度值,0.0 表示没有任务或都没有完成,1.0 表示全部完成
|
|||
|
|
|
|||
|
|
**线程安全:** ✅ 线程安全
|
|||
|
|
|
|||
|
|
**示例:**
|
|||
|
|
|
|||
|
|
```cpp
|
|||
|
|
#include "XCEngine/Threading/TaskGroup.h"
|
|||
|
|
#include "XCEngine/Threading/Task.h"
|
|||
|
|
#include <iostream>
|
|||
|
|
#include <chrono>
|
|||
|
|
|
|||
|
|
using namespace XCEngine::Threading;
|
|||
|
|
|
|||
|
|
int main() {
|
|||
|
|
TaskGroup group;
|
|||
|
|
|
|||
|
|
for (int i = 0; i < 4; ++i) {
|
|||
|
|
group.AddTask([i]() {
|
|||
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
while (!group.IsComplete()) {
|
|||
|
|
float progress = group.GetProgress();
|
|||
|
|
std::cout << "Progress: " << (progress * 100) << "%\n";
|
|||
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(50));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
std::cout << "Final Progress: " << (group.GetProgress() * 100) << "%\n";
|
|||
|
|
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 相关文档
|
|||
|
|
|
|||
|
|
- [TaskGroup 总览](task-group.md) - 返回类总览
|
|||
|
|
- [IsComplete](is-complete.md) - 检查是否完成
|