C# 事件驱动机制

用事件驱动还处理数据,你用了就会知道他的好处的。为了给大家看清事件驱动原理,我用小例子来说明:

1.建立事件

public class AlarmStateEventArgs : EventArgs
{
    //用于服务端更新事件 ,这里你可以自己写想要的传递值或函数
    string _ReceiveString = "";
    public string ReceiveString
    {
        get { return _ReceiveString; }
        set { _ReceiveString = value; }
    }
}

2声明一个委托的类型

public delegate void NetServerEventHandler(object sender, AlarmStateEventArgs e);

3.建立一个事件通知及事件处理器

public static event NetServerEventHandler DataReceiveEvent;
protected virtual void onDataReceive(AlarmStateEventArgs e)//事件通知器
{
   if (NetAlarmEvents.DataReceiveEvent != null)
   {
      NetAlarmEvents.DataReceiveEvent(this, e);
   }
}

public static string GetDataReceiveEvent(string ReceiveStr)
{
    AlarmStateEventArgs e = new AlarmStateEventArgs();
    e.ReceiveString = ReceiveStr;

    //调用通知器,通知所有登记事件的订阅着
    this.onDataReceive(e);
    return e.ReceiveString ;
}

5.事件调用

在你想要订阅事件的地方加入

NetEvents.DataReceiveEvent+= new NetServerEventHandler(NetStateEvent);//NetEvents是DataReceiveEvent存放的class

prive void NetStateEvent(object sender,AlarmStateEventArgse)
{
       //事件处理。。。

}

6.在要建立事件通知入口处添加:

NetEvents.GetDataReceiveEvent(ReceiveStr);//到此所有订阅了NetEvents.DataReceiveEvent事件的都会收到来自此处的ReceiveStr;

当然事件通知的建立可以采用循环、timer、......建立循环调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值