由C++到C#:委托模型
2007-08-28 14:50
155 查看
偶用C#写.NET窗口程序,需要在线程内更新控件,用到的C#的委托模型。IT还真是个有趣的行业,新瓶装旧酒,层出不穷。
如何理解C#的委托模型?先从Windows的窗口机制说开去吧。窗口有自己的线程处理消息循环,C++编写窗口程序就需要与窗口消息打交道,并且,如果不是在消息循环中而是从别的线程中操作控件,比如绘图,个性标签等,就需要处理同步问题。
用C++写窗口程序的哪个没有定制过消息?哪个不知道那个著名的消息循环处理过程?又有几个不知道同步?
但在C#中, 窗口消息循环被隐含和抽象了,对于同步问题,则提供了一种叫做“委托”的方法来实现。当在另一线程中更新控件时,先检测控件是否可以被直接更新,如果是,则操作控件的属性,否则,就向控件增加调用信息。控件则在有闲时根据调用信息执行调用。这,就是委托。。。。。感觉怪怪的。申明委托原型,增加调用信息的手法,活脱脱来自于C++函数指针,写惯C++的人,再写C#,感觉好熟悉。
C#看来挺 有意思滴。
如何理解C#的委托模型?先从Windows的窗口机制说开去吧。窗口有自己的线程处理消息循环,C++编写窗口程序就需要与窗口消息打交道,并且,如果不是在消息循环中而是从别的线程中操作控件,比如绘图,个性标签等,就需要处理同步问题。
用C++写窗口程序的哪个没有定制过消息?哪个不知道那个著名的消息循环处理过程?又有几个不知道同步?
但在C#中, 窗口消息循环被隐含和抽象了,对于同步问题,则提供了一种叫做“委托”的方法来实现。当在另一线程中更新控件时,先检测控件是否可以被直接更新,如果是,则操作控件的属性,否则,就向控件增加调用信息。控件则在有闲时根据调用信息执行调用。这,就是委托。。。。。感觉怪怪的。申明委托原型,增加调用信息的手法,活脱脱来自于C++函数指针,写惯C++的人,再写C#,感觉好熟悉。
C#看来挺 有意思滴。
相关文章推荐
- C#不是C++ 之 委托(Delegate)
- C#事件和委托的基础知识模型
- C++ VS C#(7):指向函数的指针和委托
- 用C++实现C#中的委托/事件(标准C++之升级版)
- c#中的委托和c++中的bind/function对比
- [C++]实现委托模型
- [C++]实现委托模型
- C#事件和委托的基础知识模型
- C#:请向C++传递全局委托对象以用于回调
- c++使用指针做出类似C#委托的功能
- C#调用C++DLL–委托
- C#的委托 VS C++的指针
- C#事件和委托的基础知识模型
- C++ 0x 使用可变参数模板类 实现 C# 的委托机制
- C#知识点整理(2)-高级语言学习模型的建立之深入剖析委托
- C#事件和委托的基础知识模型收藏
- C/C++/Java/C#的基础类型模型的定义
- (转)C#的委托机制的C++的一种实现
- C# vs C++之一:委托 vs 函数指针
- C# 调用 C++ DLL 中的委托,引发“对XXX::Invoke类型的已垃圾回收委托进行了回调”错误的解决办法