C#中委托回调,事件方法

本文介绍了C#中如何使用委托进行异步调用,详细阐述了异步调用的过程,包括定义委托、创建实例、调用委托,并解释了同步与异步调用的区别。同时,讨论了事件在封装性和权限控制上的优势,以及如何声明和理解事件。文章还提供了一个简单的委托和事件应用示例链接。
摘要由CSDN通过智能技术生成

定义委托

delegate 返回值 方法签名

delegate void Handler();

 

创建实例

Handler handler = new Handler(Fun);

调用委托

handler();

委托实现方法的异步调用

同步调用方法:排队调用,前一个方法执行时,后一个方法等待它的结束后才能启动

异步调用方法:不排队调用,前一个方法如果异步调用,后一个方法不必等待它的结束就可启动,异步调用的方法是创建了一个新线程来工作的,与后一个方法所在不同的线程,各自独立,互不影响

Framework中的任何方法都可以异步调用。前提是通过委托引用该方法,使用BeginInvoke开启异步调用模式。

步骤:

1. 为需要异步调用的方法定义一个相应的委托

2. 创建该委托的引用指向需要异步调用的方法

3. 使用委托类型的BeginInvoke方法开始异步调用,

a) BeginInvoke中的参数IAsyncCallback 表示异步调用的方法结束时执行的回调方法,往往用回调方法来处理异步的结果

b) BeginInvoke中的参数object 表示在回调方法中需要用到的数据,该数据被封装在IAsyncResult的AsyncState属性中。

4. 如方法有返回值,则需要调用EndInvoke取得返回值

 

使用事件不仅能获得比委托更好的封装性以外,还能限制含有事件的类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值