Fixed the following issues in XCEngine Core module documentation: - Added 'using namespace XCEngine::Core;' to all code examples that use Core types (Event, FileWriter, etc.) without full namespace qualification - Added missing '#include <XCEngine/Containers/String.h>' to FileWriter examples that use Containers::String - Added '#include <string>' to Flush.md example using std::to_string Affected files: - core/core.md: Added using directive and Containers include - event/*.md: Added using namespace to all 8 event doc files - filewriter/*.md: Added using namespace and proper includes to all 6 files
861 B
861 B
Event::Unsubscribe
void Unsubscribe(uint64_t id);
退订事件。
描述
将指定 ID 的回调从订阅列表中移除。退订是延迟生效的,在调用 Invoke 时会一并处理待退订的回调。线程安全,可在任意线程调用。
参数:
id- 订阅时返回的 ID
复杂度: O(n) 在 Invoke 时处理
示例:
#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 总览 - 返回类总览
- Subscribe - 订阅事件
- ProcessUnsubscribes - 手动处理退订