千家信息网

C++11消息总线怎么使用

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容介绍了" C++11消息总线怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是 C
千家信息网最后更新 2026年10月31日C++11消息总线怎么使用

本篇内容介绍了" C++11消息总线怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

什么是 C++11 消息总线 ?

最近在 C++ 项目中需要处理对象之间大量的消息,如果使用传统的 SendMessage 和 PostMessage 会使得对象之间的耦合程度过高,因此我们最后采用了一个基于 C++11 的消息总线库 Message Bus,它有下面的一些优点:

  1. 使用简单,发送和接收只需要一条语句,并使用 lambda 来简化函数的回调

  2. 可以使得模块之间高度解偶,这依赖于一个全局的 MessageBus 对象

  3. 支持发送自定义消息或者数据包

  4. 支持发送有参和无参消息

基本原理

你可以将 Message Bus 理解为一个全局的消息通道,你可以将自己的加上标识字的消息放到这个通道上,别的模块就可以通过这个标识字来拿到你的消息,这些都依赖与一个全局对象 MessageBus g_bus,它就充当了全局消息通道。

基本使用方法

发送和接受无参消息

发送:

// g_bus 是一个全局变量

extern MessageBus g_bus;
// 发送一个带有 `InitAll` 标识字的无参数消息

g_bus.SendReq("InitAll");

接收:

// g_bus 是一个全局变量
extern MessageBus g_bus;

// 绑定带有 `InitAll` 标识字的消息,一般在构造函数中进行.
// 一收到消息,InitAll 函数就会被调用,使用了简单粗暴 lambda 表达式
g_bus.Attach([this](){ InitAll(); }, "InitAll");

// 解除绑定带有 `InitAll` 的消息,一般在析构函数中进行
g_bus.Remove("InitAll");
发送和接受有参消息

发送:

// g_bus 是一个全局变量

extern MessageBus g_bus;YourType m_yourType;
// 发送一个带有 `YourType` 类型参数的有参消息

g_bus.SendReq(m_yourType, "YourType");

接收:

// g_bus 是一个全局变量

extern MessageBus g_bus;
// 绑定带有 `YourType` 标识字的有参消息,一般在构造函数中进行.

// 一收到消息,you_function 就会被调用,
// 并且发送时候传递的 `m_yourtype` 参数传递到这里的 `your_type`,
// 最终传递到 `you_function`,是不是非常简单。

g_bus.Attach([this](const YourType& your_type){ you_function(your_type); }, "YourType");

// 解除绑定 `YourType` 标识的消息,一般在析构函数中进行
g_bus.Remove("YourType");

" C++11消息总线怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

消息 全局 函数 总线 变量 对象 之间 参数 通道 内容 更多 模块 知识 支持 实用 粗暴 学有所成 接下来 优点 传统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 为想互联网科技怎么样 猪兼强互联网科技 上海挚品互联网科技 卓越科技(互联网 ) 贷财互联网科技 致聘互联网科技 苏州大垚互联网科技 天速互联网络科技有限公司 济南华为互联网科技产业总部基地 浙江互联网科技研学营 保险科技服务互联网营销体系 互联网科技公司营业执照怎么办理 上海科技产业互联网平台 锡山区互联网智能科技产品供应 中国互联网有什么科技 江苏苏星互联网科技有限公司 互联网科技接地气 数字科技和互联网金融哪个好 安徽九吞吴互联网科技有限公司 知域互联网科技有限公司官网 朗新科技与工业互联网 凡科互联网科技 九亚互联网科技 农村开互联网科技讲堂 工业互联网展湾科技股份有限公司 厦门江牛科技互联网 互联网科技平台产品运营 科技和互联网行业的特点 河南商务圈互联网科技有限公司 互联网科技创业有什么好项目
0