EventBus匯流排講解

2022-03-16 03:31:13 字數 2944 閱讀 5755

在我們公司經常用到匯流排,具體的匯流排是什麼讓我理解我也不清楚,但是在這幾個月下來,我已經知道匯流排如何使用,現在加上示例講解匯流排如何使用。

1. 首先我們的新建乙個類,這個類其實是用於匯流排傳遞的模型

using system;

namespace purchasedevices.model.commonmodel

public t data }}

2. 建立乙個類(flowservicebus),裡面來寫匯流排的方法。

public class flowservicebus

}4. 寫乙個方法,裡面掛匯流排

public class flowservicebus

}public void configmsgdispachrule()

///

/// 幀頭

/// 幀開始標記,0xaa

///

public byte packagehead

///

/// 接收者,標識資料要發給誰

/// 1磅碼主機、2定級鍵盤、3交菸刷卡。

///

public byte receiver

///

/// 傳送者,標識資料是誰發出

/// 1磅碼主機、2定級鍵盤、3交菸刷卡。

///

public byte sender

///

/// zigbee通訊位址

/// 1~15

///

public byte zigbeeaddress

///

/// 幀序號

/// 0~255

///

public byte framenumber

///

/// 命令碼

///

public byte command

///

/// 資料區位元組數

/// 

///

public int datalength

///

/// 資料區,可無(資料區為0)

///

public byte data

///

/// 從receiver到整個data的和校驗

///

public byte crc

///

/// 定長 除開資料區的長度 定長為11

///

public int fixedlength

//我們現在要做的是  根據不同的傳送者sender  ,進入不同的方法

private void dissendertodisway(farmercardorratesellmodel farmercardorratesellmodel)

}//當sender為carddev要執行的方法

public class  carddev

break;

case devtypeenum.leveldev:

if (onreceiveleveldataeventhadler!=null)

}//我們要寫兩個方法  ,這兩個方法就是sender為leveldev 和carddev,他們拿到資料自己需要怎麼處理的方法了

//當sender為carddev要執行的方法

public class  carddev

}//新建物件

private  readonly  dissendertodisway  _dissendertodisway=new dissendertodisway();

private  readonly  carddev _carddev=new carddev ();

private  readonly  leveldev _leveldev=new leveldev ();

public void configmsgdispachrule(){

eventbroker eventbroker =new eventbroker();

eventbroker.specialcasesregistrar.addpublication("傳送者為carddev 的方法", _dissendertodisway,

"onreceivecarddataeventhadler", handlerrestriction.none);

eventbroker.specialcasesregistrar.addsubscription>("傳送者為carddev 的方法",

_carddev, _carddev.carddevway, new onpublisher());

//這是一組對應的  可以這樣理解 :當執行到dissendertodisway 類裡面的onreceivecarddataeventhadler事件時,就執行carddev 裡面的carddevway方法

//按照以上的裡面  當我們執行dissendertodisway 類裡面的onreceiveleveldataeventhadler事件時,接下來我們應該執行leveldev類裡面的leveldevway方法南

eventbroker.specialcasesregistrar.addpublication("傳送者為leveldev  的方法", _dissendertodisway,

"onreceiveleveldataeventhadler", handlerrestriction.none);

eventbroker.specialcasesregistrar.addsubscription>("傳送者為leveldev 的方法",

_leveldev, _leveldev.leveldevway, new onpublisher());

匯流排這個要慢慢理解,剛開始我也不知道如何將兩個方法掛接起來的,慢慢的理解就行了。在平常**中我們很少使用匯流排,但是對於有些公司可能還是經常會用到的,對於那些剛剛接觸到匯流排的朋友們,希望對你們初步理解與簡單使用有幫助。

事件匯流排 EventBus

在非父子元件需要進行通訊的時候,除了vuex之外,還有就是事件匯流排了 eventbus 又稱為事件匯流排。在vue中可以使用 eventbus 來作為溝通橋梁的概念,就像是所有元件共用相同的事件中心,可以向該中心註冊傳送事件或接收事件,所以元件都可以上下平行地通知其他元件,但也就是太方便所以若使用...

vue 事件匯流排 eventBus

父元件向子元件傳遞引數用v bind 子元件向父元件傳遞引數用this.emit 兄弟元件傳參eventbus或者是用vuex進行傳遞 下邊說說eventbus 首先在src的assets的目錄下新建乙個vue bus.js檔案 import vue from vue export default ...

Vue事件匯流排(EventBus)

參考 問題背景 vue中除父子元件通訊外,任意兩個元件間的通訊問題。解決方案 1.使用vuex,共享乙個狀態,通過修改和監聽這個狀態實現元件通訊。2.事件匯流排。思路 根據vue.js文件,vm.on vm.off都是其實例方法,因此我們需要乙個vue例項作為事件匯流排物件。使用方式 第一種 將事件...