日期:2014-05-17  浏览次数:20879 次

请问C#的事件处理机制/原理,是不是类似于MFC的消息循环?
rt

------解决方案--------------------
.......
不是……
是相当于一个CALLBACK+函数指针
------解决方案--------------------
http://www.yesky.com/497/1640497.shtml
浅析Visual C#事件处理机制
------解决方案--------------------
先说下MFC的吧···
MFC里面 有2中吧

1 消息通知
2 回调函数


C#里面事件就是回调函数

要先声明一个代理(也就是定义一个函数指针说明接受函数的类型,参数列表等等)
然后根据这个代理 在定义一个事件。

但是在.NET里面 一个事件可以对应多个订阅源,就是一个事件调用N个回调函数,这个和MFC里面有很大不同
可以理解成 一个事件就是一个CALLBACK列表,一旦回调就挨个调用就行了
------解决方案--------------------
不是,MFC是消息循环
C井是事件驱动,当然了底层还是消息循环
------解决方案--------------------
探讨
感谢楼上的多次回复

好像说的是表面过程,而不是背后的原理,

哪位高手知道背后的原理啊

------解决方案--------------------
哦,突然还想到一点
上面说的是自定义事件

但对于button的点击事件,鼠标移动事件之类的,还是用的消息循环
不过这个只有winform才有

你要截获窗体的消息,可以重载WndProc函数
这样你就能看到熟悉的m.LParam,m.WParam,m.Msg,m.HWnd了