事件多线程

事件(Event)

概念

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

事件的两个参与者

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

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

事件和委托

相同点:

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

不同点:

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

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

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

异步编程

同步方法

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

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

例如:银行柜台办理业务,只有一个业务窗口在营业。所有人只能排队等候

异步方法

在程序调用异步方法的时候,主程序不会等待方法执行完,而是主程序调用异步方法后直接继续运行,而异步方法会启动一个新线程来完成方法的计算。

假如:张三、张四、王五、杨六、焦七现在测试
问题:王五完成所有题目30m
     张三完成所有题目50m
     杨六完成所有题目40m
     焦七完成所有题目45m
     张四完成所有题目1h30m
     考试时间不限的,谁先交卷谁先回家吃饭
不管谁先完成不会
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值