从.NET中委托写法的演变谈开去(下):性能相关
在上一篇文章中,我们详细讲述了C# 3.0中Lambda表达式(构造委托)的使用方式,它在语义上的优势及对编程的简化——这些内容已经属于委托的“扩展内容”。不如这次谈得更远一些,就来讨论一下上文中“编程方式”的性能相关话题。 循环分离及其性能 在上文的第一个示例中,我们演示了如何使用Lambda表达...
从.NET中委托写法的演变谈开去(中):Lambda表达式及其优势
在上一篇文章中我们简单探讨了.NET 1.x和.NET 2.0中委托表现形式的变化,以及.NET 2.0中匿名方法的优势、目的及注意事项。那么现在我们来谈一下.NET 3.5(C# 3.0)中,委托的表现形式又演变成了什么样子,还有什么特点和作用。 .NET 3.5中委托的写法(Lambda表达式)...
从.NET中委托写法的演变谈开去(上):委托与匿名方法
在《关于最近面试的一点感想》一文中,Michael同学谈到他在面试时询问对方“delegate在.net framework1.1,2.0,3.5各可以怎么写”这个问题。于是乎,有朋友回复道“请问楼主,茴香豆的茴有几种写法”,“当代孔乙己”,独乐,众乐。看了所有的评论,除了某些朋友认为“的确不该不知...
Silverlight 3.0 Demo
[索引页][源码下载] Silverlight 2.0 系列文章索引 Silverlight 2.0 在线 Demo Silverlight 3.0 系列文章索引 Silverlight 3.0 在线 Demo Silverlight 4.0...
适合C# Actor的消息执行方式(6):协变与逆变
在上一篇文章中,我们实现了一个简单的爬虫,并指出了这种方式的缺陷。现在,我们就来看一下,如何使用C# 4.0中所引入的“协变和逆变”特性来改进这种消息执行方式,这也是我认为在“普适Actor模型”中最合适的做法。这次,我们动真格的了,我们会一条一条地改进前文提出的缺陷。 协变与逆变 在以前的几篇文章...
快速计算表达式树
前言 .NET 3.5中新增的表达式树(Expression Tree)特性,第一次在.NET平台中引入了“逻辑即数据”的概念。也就是说,我们可以在代码里使用高级语言的形式编写一段逻辑,但是这段逻辑最终会被保存为数据。正因为如此,我们可以使用各种不同的方法对它进行处理。例如,您可以将其转化为一个SQ...
适合C# Actor的消息执行方式(5):一个简单的网络爬虫
之前的几篇文章大都在摆一些“小道理”,有经验的朋友容易想象出来其中的含义,不过对于那些还不了解Actor模型的朋友来说,这些内容似乎有些太过了。此外,乒乓测试虽然经典,但是不太容易说明问题。因此,今天我们就来看一个简单的有些简陋的网络爬虫,对于Actor模型的使用来说,它至少比乒乓测试能够说明问题...
IT168转载问题解决情况,以及本人博客转载方式
与IT168编辑联系之后,目前文章已添加原文链接,并且答应以后的各类转载都会符合协议。这个结局比较令人满意。此外,我想在这里详细谈一下这方面的一些做法。转载方式简介首先,请注意每篇文章下方都有一个Licence链接,如下: 点击上面的图标或链接“共享 2.5 中国大陆”,将会进入如下的页面(点击查...
浅谈线程池(中):独立线程池的作用及IO线程池
在上一篇文章中,我们简单讨论了线程池的作用,以及CLR线程池的一些特性。不过关于线程池的基本概念还没有结束,这次我们再来补充一些必要的信息,有助于我们在程序中选择合适的使用方式。 独立线程池 上次我们讨论到,在一个.NET应用程序中会有一个CLR线程池,可以使用ThreadPool类中的静态方法来使...
浅谈线程池(上):线程池的作用及CLR线程池
线程池是一个重要的概念。不过我发现,关于这个话题的讨论似乎还缺少了点什么。作为资料的补充,以及今后文章所需要的引用,我在这里再完整而又简单地谈一下有关线程池,还有.NET中各种线程池的基础。更详细的内容就不多作展开了,有机会我们再详细讨论这方面的细节。这次,还是一个“概述”性质的,希望可以说明白这方...
适合C# Actor的消息执行方式(4):阶段性总结
这个系列原本打算写3篇,也就是说在上一篇文章中已经把老赵认为较合适的方法展现出来了,但事实上这个系列的计划已经扩展为8篇了——没错,翻了一倍不止,而最终是几篇现在我也无法断言。其实这也是我写不了书的原因之一。虽说唯一不变的就是变化,但是我变的太离谱了。不断写,不断出现新想法,不断变化。作为这个系列的...
适合C# Actor的消息执行方式(3):中看不中用的解决方案
在前两篇文章中,我们了解到Erlang中灵活的模式匹配,以及在C#甚至F#中会都遭遇的尴尬局面。那么现在就应该来设计一个解决方案了,我们如何才能在C#这样的语言里顺畅地使用Actor模型呢?不仅如此,最好我们还能获得其它一些优势。 “消息”、“协议”和“接口” Actor模型中的对象如果要进行交互,...
老赵书托(2):计算机程序的构造与解释
我要推荐的第一本书便是大名鼎鼎的《Structure and Interpretation of Computer Programs》,在国内可以买到中译版,即机械工业出版社的《计算机程序的构造与解释》。 抽象豪不夸张地说,这是一本影响了好几代程序员的书。自从上世纪80年代MIT开始使用这本书作为教...
适合C# Actor的消息执行方式(2):C# Actor的尴尬
在上一篇文章中,我们简单解读了Erlang在执行消息时候的方式。而现在,我们就一起来看看,C# Actor究竟出现了什么样的尴尬。此外,我还打算用F#进行补充说明,最终我们会发现,虽然F#看上去很美,但是在实际使用过程中依旧有些遗憾。 Erlang中的Tag Message 老赵在上一篇文章里提到,...
适合C# Actor的消息执行方式(1):Erlang中的模式匹配
前言 Actor模型为并行而生。由于现在单台机器中独立的计算单元也越来越多,Actor模型的重要性也越来越大。Actor模型的理念非常简单:天下万物皆为Actor,Actor之间通过发送消息进行通信。不同的Actor可以同时处理各自的消息,从而获得了大规模的并发能力。 Erlang基于Actor模型...
是什么造成了MVP的尴尬现状?我们该怎么办?
MVP项目其实微软的“专家认证”活动之一,不过它并非根据培训或考试而来,而是根据个人在社区表现评选出来的内容。从这一方面来说,MVP应该是广受社区群众爱戴的群体。 记得在02、03年的时候,微软MVP在我眼中也是非常“高大”的,似乎也就那么几个人,他们个个大牛,受人景仰。似乎是在前年的MVP峰会上,...