c# 委托实例的几种执行方式详解
声明委托:
首先,绑定委托方法有如下几种方式:
第一种,直接对符合委托结构的方法进行多绑定:
第二种,绑定匿名方法:
第三种,用等号指定单方法:
注意,第三种绑定方式会将之前所绑定的方法全部解绑,执行结果如下:
如果将第三种的=改为+=,则执行结果如下,会按照你绑定的顺序依次执行:
以上,是委托实例对方法进行绑定的几种方式,下面则是委托实例的几种执行方式:
第一种,直接用执行:
这种方式采用的是同步线程执行,会依次执行该委托实例所有绑定的方法,直到执行完毕,才会继续走下面的代码。
第二种,采用异步执行方式:
但是如上所示,你发现用异步执行报错了,原因就是,如果你要使用异步执行委托的话,那么将不再能够进行多方法绑定,如果绑定了多个方法,则会报出“该委托必须有一个目标,且仅有一个目标”的异常。
我们改为只绑定一个方法,就执行正常了:
那么问题来了,这两种执行方法,各有什么优劣呢?
很显然,同步调用的执行方式可以进行方法的多绑定,但缺点就是我们必需要等待其所有绑定方法执行结束,才能进行后面代码的执行。
而异步调用却无需等待,直接便可执行后方的代码,并且,异步执行委托可以让我们控制方法的执行时间,如下:
其中关键方法WaitOne(1000)意思就是说,在该委托执行之后,阻塞当前线程1000毫秒,用以等待,如果过了1000毫秒委托还没有执行完毕,就会返回false。我们根据判断,可以做一些特殊的功能,比如说弹个“执行超时”的弹框啦,或者是像上面我写的代码一样,做一些动态效果之类的。
c# 委托实例的几种执行方式详解相关推荐
- @Resource,@Autowired,@Inject3种注入方式详解
转载自 @Resource,@Autowired,@Inject3种注入方式详解 概况 @Resource,@Autowired,@Inject 这3种都是用来注入bean的,它们属于不同的程序中. ...
- PCBA加工中常见的两种焊接方式详解
PCBA加工中常见的两种焊接方式详解 PCBA加工,两种常见的焊接方式就是回流焊和波峰焊,与手动焊接技术相比,自动焊接技术具有减少人为因素的影响.提高效率.降低成本.提高质量等优势,在PCBA加工中, ...
- C++的三种继承方式详解
文章目录 @[toc] C++的三种继承方式详解以及区别 前言 一.public继承 二.protected继承 三.private继承 四.三者区别 五.总结 后话 C++的三种继承方式详解以及区别 ...
- JavaScript中this的五种绑定方式详解
1 this的五种绑定方式 1.1 默认绑定 默认绑定是指当函数调用时,没有为其指定对象上下文,此时会将该函数的this绑定到全局对象(window对象).自ES5有了严格模式之后,默认绑定方式又分为 ...
- python的等待代码是什么_Python selenium 三种等待方式详解
1.目的背景 解决问题:下拉框定位不到.弹框定位不到-各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待. 原因:代码运行速度快,而浏览器加载渲染速度慢 解决办法:加等待,目 ...
- python三种等待方式_Python selenium 三种等待方式详解
本文摘自:http://blog.csdn.net/huilan_same/article/details/52544521 发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性. 很 ...
- 单例模式的几种实现方式详解以及原理
单例模式介绍 前言 这是一个的萌新写的博客,以下是学习课程以后的总结,用于个人的复习与总结,如果有误还请多多包容和指正. 了解单例模式: 单例类只能有一个实例 单例必须创建自己的唯一一个实例 单例类必 ...
- redis的两种持久化方式详解
一.背景 在实际开发中,为了保证数据的完整性,防止数据丢失,我们除了在原有的传统数据库保存数据的同时,最好是再用redis持久化再保存一次数据.如果仅仅是使用redis而不进行持久化配置的话,当red ...
- asp.net Session在web.config中的三种配置方式——详解
这段代码就是设置session在web.config中的存储方式. < sessionState mode="Off|InProc|StateServer|SQLServer" ...
最新文章
- 98级计算机应用教材,西安外事学院98级计算机应用9806班毕业二十年校友返校
- html中item属性,项目id(属性) | itemid (attribute)
- 传统多视图立体算法:PatchMatchStereo详解
- 天水师范学院计算机科学与技术专业代码,计算机科学与技术-天水师范学院IPv6专题网站.doc...
- 前馈神经网络——深度学习之神经网络核心原理与算法
- 计算机普通用户没有软件怎么回事,请教各位高手:单机多用户账户计算机,当管理员用户安装了程序,其它普通用户账户不能使用怎么处理?比如在管理...
- 混沌思维模型实战课课件分享
- HDU1598 find the most comfortable road【枚举+并查集+最大生成树】
- 话说网页长啥样,到底谁说了算??
- 素数平方根之和c语言注释,C语言 素数平方之和
- php获取客户端IP和php获取服务器端IP
- 国际标准书号 ISBN API 数据接口
- Java 并发 随笔 1-初尝并发
- MATLAB Simulink开发ROS无人车与机器人应用 详细教程
- 最新在线客服系统源码软件代码+自动回复+管理后台
- 博客园博客Wiz测试
- 1044 mysql_Mysql的常见几种错误:1045,1044
- 动物电子标签阅读器识读器L8600系列选型与安装注意事项
- 改变别人的思想的艺术
- 输入的英文字母隔得很开