由C++到C#:委托模型

来源:互联网 发布:知乎 开发者 编辑:程序博客网 时间:2024/04/30 11:39

偶用C#写.NET窗口程序,需要在线程内更新控件,用到的C#的委托模型。IT还真是个有趣的行业,新瓶装旧酒,层出不穷。

如何理解C#的委托模型?先从Windows的窗口机制说开去吧。窗口有自己的线程处理消息循环,C++编写窗口程序就需要与窗口消息打交道,并且,如果不是在消息循环中而是从别的线程中操作控件,比如绘图,个性标签等,就需要处理同步问题。

用C++写窗口程序的哪个没有定制过消息?哪个不知道那个著名的消息循环处理过程?又有几个不知道同步?

但在C#中, 窗口消息循环被隐含和抽象了,对于同步问题,则提供了一种叫做“委托”的方法来实现。当在另一线程中更新控件时,先检测控件是否可以被直接更新,如果是,则操作控件的属性,否则,就向控件增加调用信息。控件则在有闲时根据调用信息执行调用。这,就是委托。。。。。感觉怪怪的。申明委托原型,增加调用信息的手法,活脱脱来自于C++函数指针,写惯C++的人,再写C#,感觉好熟悉。

C#看来挺 有意思滴。

原创粉丝点击