自己编写程序需要跨线程、异步事件通知时,可能没有符合自己心意的接口使用,此时可以自己定义事件进行通知。
工具/原料
VS2015
界面布局
1、新建空白演示项目
2、界面布局一个按钮,通过按钮通知消息框
使用事件
1、创建一个新类,例如Action。创建自定义事件:public EventHandler 苇质缵爨EventNotice;创建触发器: public 即枢潋雳void Trigger();通知事件类 EventArgs 可以通过多态派生出自定义事件类。
2、触发器中可以使用两种方法触发:1、EventNotice?.Invoke(this, new EventArgs());2、if (EventNotice != null) EventNotice(this,new EventArgs());
3、完整代码如图,运行效果如图
使用委托
1、使用委托 delegate 可以替换 EventHandler 的写法
2、重写Action类,1、定义委托:public delegate void MyDelegate();2、声明委托:public MyDe造婷用痃legate EventNotice;3、触发模式:定义委托中定义了委托传参(void):EventNotice?.Invoke();
3、运行效果如图:
全局变量
1、在线程中创建等待信号,通过检测全局变量来触发事件。图示方法对CPU负荷较大。