摘要:
上一篇举了这个例子: 这段代码里其实注意一下,我们有两个Observer,他们的工作职责都是一个,Console.WriteLine,这个方法在多线程里调用是没有问题的,但是从维护线程安全的复杂工作上来讲,我们更希望有一个single thread专门用来做Console.WriteLine,也就是说其实IObserver<T>就是把多线程的状态在它身上给隐藏掉了,与IObserver... 阅读全文
摘要:
.net的IEnumerable接口是返回IEnumerator,而IEnumerator实现了MoveNext()和获取当前对象等方法。 Observable利用该思想,使用IObservable<T>和IObserver<T>实现Push-Style(推模式),我们常用的IEnumerble可以理解为拉模式或主动模式,那么就需要返回IEnumerator来操作。而推模式... 阅读全文
摘要:
配置环境时需要注意的是: 装Ruby的时候--prefix=/usr,这样可以直接使用/usr/bin/ruby了,不需要ln -s去做link。 使用heroku的gem前要先用ssh-keygen –t rsa生成 然后再heroku keys:add把public key upload到heroku server 装git前要保证这些都安装了:yum install gettext-dev... 阅读全文
摘要:
involves内部创建ChannelFactory<T>,每个proxy都持有一个ChannelFacotry的private field。ChannelFactory的生命周期由proxy完全控制。 构造ContractDescription树 反射所有需要的CLR类型 构造channel stack dispose所有的资源 在3.0SP1和3.5下两个主要的性能提升: Cha... 阅读全文