声明委托:

首先,绑定委托方法有如下几种方式:

第一种,直接对符合委托结构的方法进行多绑定:

第二种,绑定匿名方法:

第三种,用等号指定单方法:

注意,第三种绑定方式会将之前所绑定的方法全部解绑,执行结果如下:

如果将第三种的=改为+=,则执行结果如下,会按照你绑定的顺序依次执行:

以上,是委托实例对方法进行绑定的几种方式,下面则是委托实例的几种执行方式:

第一种,直接用执行:

这种方式采用的是同步线程执行,会依次执行该委托实例所有绑定的方法,直到执行完毕,才会继续走下面的代码。

第二种,采用异步执行方式:

但是如上所示,你发现用异步执行报错了,原因就是,如果你要使用异步执行委托的话,那么将不再能够进行多方法绑定,如果绑定了多个方法,则会报出“该委托必须有一个目标,且仅有一个目标”的异常。

我们改为只绑定一个方法,就执行正常了:

那么问题来了,这两种执行方法,各有什么优劣呢?

很显然,同步调用的执行方式可以进行方法的多绑定,但缺点就是我们必需要等待其所有绑定方法执行结束,才能进行后面代码的执行。

而异步调用却无需等待,直接便可执行后方的代码,并且,异步执行委托可以让我们控制方法的执行时间,如下:

其中关键方法WaitOne(1000)意思就是说,在该委托执行之后,阻塞当前线程1000毫秒,用以等待,如果过了1000毫秒委托还没有执行完毕,就会返回false。我们根据判断,可以做一些特殊的功能,比如说弹个“执行超时”的弹框啦,或者是像上面我写的代码一样,做一些动态效果之类的。

c# 委托实例的几种执行方式详解相关推荐

  1. @Resource,@Autowired,@Inject3种注入方式详解

    转载自 @Resource,@Autowired,@Inject3种注入方式详解 概况 @Resource,@Autowired,@Inject 这3种都是用来注入bean的,它们属于不同的程序中. ...

  2. PCBA加工中常见的两种焊接方式详解

    PCBA加工中常见的两种焊接方式详解 PCBA加工,两种常见的焊接方式就是回流焊和波峰焊,与手动焊接技术相比,自动焊接技术具有减少人为因素的影响.提高效率.降低成本.提高质量等优势,在PCBA加工中, ...

  3. C++的三种继承方式详解

    文章目录 @[toc] C++的三种继承方式详解以及区别 前言 一.public继承 二.protected继承 三.private继承 四.三者区别 五.总结 后话 C++的三种继承方式详解以及区别 ...

  4. JavaScript中this的五种绑定方式详解

    1 this的五种绑定方式 1.1 默认绑定 默认绑定是指当函数调用时,没有为其指定对象上下文,此时会将该函数的this绑定到全局对象(window对象).自ES5有了严格模式之后,默认绑定方式又分为 ...

  5. python的等待代码是什么_Python selenium 三种等待方式详解

    1.目的背景 解决问题:下拉框定位不到.弹框定位不到-各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待. 原因:代码运行速度快,而浏览器加载渲染速度慢 解决办法:加等待,目 ...

  6. python三种等待方式_Python selenium 三种等待方式详解

    本文摘自:http://blog.csdn.net/huilan_same/article/details/52544521 发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性. 很 ...

  7. 单例模式的几种实现方式详解以及原理

    单例模式介绍 前言 这是一个的萌新写的博客,以下是学习课程以后的总结,用于个人的复习与总结,如果有误还请多多包容和指正. 了解单例模式: 单例类只能有一个实例 单例必须创建自己的唯一一个实例 单例类必 ...

  8. redis的两种持久化方式详解

    一.背景 在实际开发中,为了保证数据的完整性,防止数据丢失,我们除了在原有的传统数据库保存数据的同时,最好是再用redis持久化再保存一次数据.如果仅仅是使用redis而不进行持久化配置的话,当red ...

  9. asp.net Session在web.config中的三种配置方式——详解

    这段代码就是设置session在web.config中的存储方式. < sessionState mode="Off|InProc|StateServer|SQLServer" ...

最新文章

  1. 98级计算机应用教材,西安外事学院98级计算机应用9806班毕业二十年校友返校
  2. html中item属性,项目id(属性) | itemid (attribute)
  3. 传统多视图立体算法:PatchMatchStereo详解
  4. 天水师范学院计算机科学与技术专业代码,计算机科学与技术-天水师范学院IPv6专题网站.doc...
  5. 前馈神经网络——深度学习之神经网络核心原理与算法
  6. 计算机普通用户没有软件怎么回事,请教各位高手:单机多用户账户计算机,当管理员用户安装了程序,其它普通用户账户不能使用怎么处理?比如在管理...
  7. 混沌思维模型实战课课件分享
  8. HDU1598 find the most comfortable road【枚举+并查集+最大生成树】
  9. 话说网页长啥样,到底谁说了算??
  10. 素数平方根之和c语言注释,C语言 素数平方之和
  11. php获取客户端IP和php获取服务器端IP
  12. 国际标准书号 ISBN API 数据接口
  13. Java 并发 随笔 1-初尝并发
  14. MATLAB Simulink开发ROS无人车与机器人应用 详细教程
  15. 最新在线客服系统源码软件代码+自动回复+管理后台
  16. 博客园博客Wiz测试
  17. 1044 mysql_Mysql的常见几种错误:1045,1044
  18. 动物电子标签阅读器识读器L8600系列选型与安装注意事项
  19. 改变别人的思想的艺术
  20. 输入的英文字母隔得很开

热门文章

  1. 【STM32】EXTI
  2. 医院、诊所|使用微信预约挂号系统,部分老年患者不会用怎么办?
  3. Openjdk 国内镜像源加速下载
  4. 学习笔记15--整车总线及线控技术
  5. 如何使用手机和EasyRTMP向EasyDSS平台成功推流?
  6. 源码时代UI设计干货分享| PS调色法之赛博朋克风
  7. Barsetto百胜图咖啡机——办公咖啡机选购攻略
  8. 你最大的敌人就是你自己
  9. 关于word尾注格式中没有中括号的问题
  10. r2adj——调整r方Adjusted R-Squared