ev-spdlog-enum-class-async-msg-003¶
| 字段 | 值 |
|---|---|
| 项目 | gabime/spdlog |
| 固定 commit | 79524ddd08a4 |
| 路径 | include/spdlog/details/thread_pool-inl.h |
| 行段 | L102-L114 |
| 特性 | 强类型枚举(enum class) |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-27 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
用 enum class 表示异步消息种类并驱动后台线程分支
为什么典型¶
消息类型需要限定作用域,switch 把每种类型映射到具体处理动作。
摘录¶
switch (incoming_async_msg.msg_type) {
case async_msg_type::log: {
incoming_async_msg.worker_ptr->backend_sink_it_(incoming_async_msg);
return true;
}
case async_msg_type::flush: {
incoming_async_msg.worker_ptr->backend_flush_();
return true;
}
case async_msg_type::terminate: {
return false;
}
备注¶
生产路径;线程池从队列取出消息后按类型分派日志、刷新或终止。