event是一种回调机制。它是制造类库的利器。c#语言,对事件有非常强大的支持。
event仅仅是个语法糖衣而已。然而,这个语法糖衣,给c#语言提供了强大的工业化支持。
它使你可以轻而易举的变得设计出professional的类库。
可以说,不懂得运用回调,根本就算不上一个合格的程序员。不管用什么语言。
回调在设计类库时,具有极其重要的作用。
没有回调,很多设计,根本就无法解耦。
c#的event,其实就是delegate。delegate,是一个方法声明。
只要任何一个方法可以与这个delegate的方法声明匹配,就可以将它赋值给这种delegate。
c#的delegate不仅仅可以用来做回调。它还有多播和异步的支持。
通常,做一个通讯程序,经常需要异步处理。
这就意味着线程池等一系列非常麻烦的东东。
而c#,只是简单的用一个delegate就解决了。
是的,它也是用线程池实现的,但是,用一个著名厂商经过严格测试的线程池,远胜于去尝试sf.net上的无名高手写的框架,虽然或许大概可能会有收获,但是谁知道会发生什么问题呢。