04 2010 档案
IL入门之旅(三)——Dump对象
摘要:Dump对象 一个成熟的系统,都少不了一个强大的Log,而Log通常需要把当时的对象的很多信息记录下来,因此Dump对象的功能在很多场合下都会使用到。 那么来看看普通的Dump如何实现: 如此,就把Foo实例的内容记录到Log中,但是,思考一下,如果有100多个地方需要记录Foo对象,就...
阅读全文
学习TPL(三)
摘要:上集回顾 上集讨论了TPL的线程安全问题,以及很粗浅的讨论了一些关于TPL的性能问题。这一集中,暂时抛开这些,直接来讨论一下TPL带来的一个非常强大的新功能——异步撤销。 应用场景 还记得线程池吧,利用线程池,按顺序每秒输出一个0-9数字: 但是,如果还要有取消功能哪? 为了取消,我们不得不把代码写成这样: 认为很好吗?不,一点也不好,isCancelled会被多个...
阅读全文
学习TPL(二)
摘要:回顾 前面一篇简单的介绍了TPL,以及一个最简单的例子。这一篇,来讨论一下线程安全的问题。 TPL不需要考虑线程安全? 好吧,我不知道为什么会有人提出这样的想法,首先要确定的是在MS的开发人员是人,不是神,不可能让一个类库聪明到这样的程度。要是真的有这么聪明的话,估计我们都可以转行做需求分析了,更不不需要写代码的人了。 如何证明考虑线程安全是必要的哪?来一个简单的示例就可以了: 由于写这篇...
阅读全文
学习TPL(一)
摘要:这周vs2010发布了,不少文章都在Show那些vs2010的新体验,这里我也凑个热闹,也来写写。 什么是TPL TPL是Task Parallel Library的简称,也就是Framework 4.0中新加入的类库之一,这个类库里面最著名的要算是PLinq了(说到PLinq,大家一定瞬间就知道了吧)。但是PLinq只是TPL把其中最常用的内容使用Linq兼容的语法提供给大家,方便使用,所以...
阅读全文
Workflow之打造RetryActivity
摘要:1、前言 .net Framework 3.0的Workflow用过了吧,什么?还没有,好吧,就连我这种当初认为Workflow是个不值得花时间去学习的人也用了一下,毕竟在某些情况下,使用WF的编码效率以及灵活性远要比不使用WF的要高。 2、场景 比如说,现在需要做个异步的服务,其中有调用了很多其他服务,并且这些服务是远程的,也就是可能在很多阶段都回出现调用失败的情况,当然,由于服务本身是异...
阅读全文