裂开反射器并看看。
观看一些C9视频 - 这个 一个展示了如何'推导'选择'组合'
秘诀是创建AnonymousObservable,AnonymousObserver和AnonymousDisposable类(这些只是因为你无法实例化接口而解决)。当您使用Actions和Funcs传递它时,它们包含零实现。
例如:
public class AnonymousObservable<T> : IObservable<T> { private Func<IObserver<T>, IDisposable> _subscribe; public AnonymousObservable(Func<IObserver<T>, IDisposable> subscribe) { _subscribe = subscribe; } public IDisposable Subscribe(IObserver<T> observer) { return _subscribe(observer); } }
我会让你解决剩下的问题......这是一个非常好的理解练习。
有一个很好的小线程增长 这里 有相关问题。
关于这个实现只有一个评论:
在.net fw 4中引入并发集合之后,最好使用ConcurrentDictioary而不是简单的字典。
它节省了集合上的处理锁。
ADI公司。