C#的事件(比如按钮点击)是如何被主线程(窗体)获取的?采用何种方式(轮询?while循环触发?)获取?

C#的事件(比如按钮点击)是如何被主线程(窗体)获取的?采用何种方式(轮询?while循环等触发?)获取?看到在窗体初始化中注册了事件on_click+=...,但是主线... C#的事件(比如按钮点击)是如何被主线程(窗体)获取的?采用何种方式(轮询?while循环等触发?)获取?看到在窗体初始化中注册了事件on_click += ...,但是主线程是如何运行的?或说具体是在做什么?只看到了Application.Run(new Form1());,但是内部的就不懂了 展开
 我来答
lrh3321
推荐于2016-05-18 · TA获得超过2183个赞
知道大有可为答主
回答量:2296
采纳率:75%
帮助的人:2121万
展开全部
windows是消息驱动的,不是轮询。

如果你想做需要低反应延迟的游戏的话确实要使用轮询来判断输入状态,但Form不是用轮询的。

System.Windows.Forms.Control 类有个WndProc虚方法,会检测消息的传入,再根据消息判断发生了什么事,再去引发相应的事件。
protected virtual void WndProc(ref Message m)
追问
是引用命名空间using System.Windows.Forms;里的吗?在项目管理器中不能看到代码流程或调用方法吗?
追答
用ILSpy把 System.Windows.Forms.dll给反编译了,然后代码你自己慢慢看,虽然底层的部分是使用API
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式