C#事件多线程(一)

本文介绍了C#中的事件(Event),强调了事件作为对象间消息传递的机制,及其与委托的联系与区别。接着探讨了异步编程,包括同步方法与异步方法的区别,以及如何使用委托进行异步调用,特别提到了在回调函数和线程安全方面需要注意的问题。
摘要由CSDN通过智能技术生成

事件(Event)

概念

事件是对象在外界第三方因素影响下发生的事情,而对外提供的一种消息机制

事件的两个参与者

  1. 发送者(Sender):对象本身,当本身状态发生变化时,触发事件,并通知事件的接收者

  2. 接收者(Receiver):用来处理事件的,在事件发送者触发一个事件后,会自动执行的内容

事件和委托

相同点:

事件对象本质就是一个私有的委托对象,以及公有的方法,add(+=)和remove(-=)

不同点:

  1. +=方法是,实际上是调用add方法对委托进行添加。

  2. 委托对象私有以后,无法直接从外部赋值(内部可以赋值)。

  3. 好处:能够避免用户直接将对象事件清除,比如微软给内部事件,只允许通过add或者remove进行注册和移除事件,而不能清除掉。这样做能够保护委托。理解事件是对委托的封装

异步编程

同步方法

程序运行的时候,在调用其他方法的时候,会等待被调用的方法按顺序执行完,才会继续执行。非常符合开发思维,有序执行

假如:张三、李四、王麻子、秦七、赵六现在要王者开黑。
问题:张三游戏加载20s
     李四游戏加载30s
     王麻子游戏加载1m
     秦七游戏加载40s
     赵六游戏加载1m20s
最终需要等待焦国栋游戏加载完成才能同时进入游戏
这就是所谓同步编程

例如:银行柜台办理业务,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值