多播委托的执行顺序

结论:

If you are using multicast delegates, you should be aware that the order in which methods chained to the same delegate will be called is formally undefined. You should, therefore, avoid writing code that relies on such methods being called in any particular order.

执行顺序不确定,不可依赖特定顺序执行操作。



最近有个问题,多播委托的执行顺序是怎样的呢?
对于此问题,我想到的一个执行方案是,自己写个例子,看执行结果。
如果,

  1. 执行结果和委托的添加顺序是一致的,则证明委托是按顺序执行的;
  2. 执行结果和委托的添加顺序是相反的,则证明委托是按逆序执行的;
  3. 执行结果和委托的添加顺序是不确定的,则证明委托方法的执行顺序是不确定的;

但是在寻求理论性答案的时候,发现上述的方法论是错误的。原因如下:

随着.net framework\core的版本不同,测试电脑的不同,各种测试结果均有差异。

所以此类问题的解决方法有以下集中:

  1. 看源码,看具体实现机制
  2. 看权威书籍,如官方文档
  3. 海量实验验证,但此法仍然不能保证得到的结果完全正确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值