真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++11消息總線怎么使用

本篇內(nèi)容介紹了“ C++11消息總線怎么使用”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站制作、大廠網(wǎng)絡(luò)推廣、微信小程序、大廠網(wǎng)絡(luò)營(yíng)銷、大廠企業(yè)策劃、大廠品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供大廠建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com

什么是 C++11 消息總線 ?

最近在 C++ 項(xiàng)目中需要處理對(duì)象之間大量的消息,如果使用傳統(tǒng)的 SendMessagePostMessage 會(huì)使得對(duì)象之間的耦合程度過高,因此我們最后采用了一個(gè)基于 C++11消息總線庫(kù)Message Bus,它有下面的一些優(yōu)點(diǎn):

  1. 使用簡(jiǎn)單,發(fā)送和接收只需要一條語(yǔ)句,并使用 lambda 來簡(jiǎn)化函數(shù)的回調(diào)

  2. 可以使得模塊之間高度解偶,這依賴于一個(gè)全局的 MessageBus 對(duì)象

  3. 支持發(fā)送自定義消息或者數(shù)據(jù)包

  4. 支持發(fā)送有參和無參消息

基本原理

你可以將 Message Bus 理解為一個(gè)全局的消息通道,你可以將自己的加上標(biāo)識(shí)字的消息放到這個(gè)通道上,別的模塊就可以通過這個(gè)標(biāo)識(shí)字來拿到你的消息,這些都依賴與一個(gè)全局對(duì)象 MessageBus g_bus,它就充當(dāng)了全局消息通道。

基本使用方法

發(fā)送和接受無參消息

發(fā)送:

// g_bus 是一個(gè)全局變量

extern MessageBus g_bus;
// 發(fā)送一個(gè)帶有 `InitAll` 標(biāo)識(shí)字的無參數(shù)消息

g_bus.SendReq("InitAll");

接收:

// g_bus 是一個(gè)全局變量
extern MessageBus g_bus;

// 綁定帶有 `InitAll` 標(biāo)識(shí)字的消息,一般在構(gòu)造函數(shù)中進(jìn)行.
// 一收到消息,InitAll 函數(shù)就會(huì)被調(diào)用,使用了簡(jiǎn)單粗暴 lambda 表達(dá)式
g_bus.Attach([this](){ InitAll(); }, "InitAll");

// 解除綁定帶有 `InitAll` 的消息,一般在析構(gòu)函數(shù)中進(jìn)行
g_bus.Remove("InitAll");
發(fā)送和接受有參消息

發(fā)送:

// g_bus 是一個(gè)全局變量

extern MessageBus g_bus; YourType m_yourType;
// 發(fā)送一個(gè)帶有 `YourType` 類型參數(shù)的有參消息

g_bus.SendReq(m_yourType, "YourType");

接收:

// g_bus 是一個(gè)全局變量

extern MessageBus g_bus;
// 綁定帶有 `YourType` 標(biāo)識(shí)字的有參消息,一般在構(gòu)造函數(shù)中進(jìn)行.

// 一收到消息,you_function 就會(huì)被調(diào)用,
// 并且發(fā)送時(shí)候傳遞的 `m_yourtype` 參數(shù)傳遞到這里的 `your_type`,
// 最終傳遞到 `you_function`,是不是非常簡(jiǎn)單。

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

// 解除綁定 `YourType` 標(biāo)識(shí)的消息,一般在析構(gòu)函數(shù)中進(jìn)行
g_bus.Remove("YourType");

“ C++11消息總線怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


網(wǎng)站名稱:C++11消息總線怎么使用
轉(zhuǎn)載源于:http://weahome.cn/article/ipsopd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部