Files
XCEngine/docs/api/core/event/Unsubscribe.md

44 lines
861 B
Markdown
Raw Normal View History

# Event::Unsubscribe
```cpp
void Unsubscribe(uint64_t id);
```
退订事件。
**描述**
将指定 ID 的回调从订阅列表中移除。退订是延迟生效的,在调用 `Invoke` 时会一并处理待退订的回调。线程安全,可在任意线程调用。
**参数:**
- `id` - 订阅时返回的 ID
**复杂度:** O(n) 在 Invoke 时处理
**示例:**
```cpp
#include <XCEngine/Core/Event.h>
using namespace XCEngine::Core;
Event<int> someEvent;
// 订阅
uint64_t id = someEvent.Subscribe([](int value) {
printf("Value: %d\n", value);
});
// 退订
someEvent.Unsubscribe(id);
// 触发(已退订的回调不会被调用)
someEvent.Invoke(42);
```
## 相关文档
- [Event 总览](event.md) - 返回类总览
- [Subscribe](Subscribe.md) - 订阅事件
- [ProcessUnsubscribes](ProcessUnsubscribes.md) - 手动处理退订