Windows窗体应用程序是否忙于等待用户输入?

Din*_*han 7 .net event-handling winforms

通常,窗体表单应用程序在用户提供输入时继续执行.
例如:单击一个按钮.
在那之前,应用程序忙等待吗?
(去检查"按钮"是否已被"点击".我的意思是检查是否发生了任何事件)
或者当事件发生时操作系统是否中断了应用程序?
Windows窗体应用程序的确切事件处理机制是什么?

San*_*ndy 2

我对此没有太多了解可以分享。但肯定会分享我的花生。

程序不等待任何人。就像处于睡眠模式一样。确实消耗资源,但只是为了将其 GUI 保留在屏幕上。

事件处理不是基于程序或基于操作系统的。它基于硬件。当您单击鼠标或按下键盘上的某个键时,其被视为异步外部活动。硬件向操作系统通报用户或外部设备所采取的操作,并将信息传递给相应的程序。程序可以接受密钥或拒绝它。如果接受,则密钥将传递给事件处理程序并生成所需的操作。操作系统根本不参与该过程。它或多或少就像一个将本机代码转换为程序可读代码的中介。这就是程序特定于操作系统的原因之一。我的意思是,如果操作系统将本机代码转换为程序无法读取的格式怎么办?

您正在谈论基于 Windows 的应用程序中的事件,让我们想象一下 USB 的情况。现在的主板上有8个或8个以上的USB插槽。用户可以将 USB 插入任何插槽。操作系统是否一直等待 USB 插入,并且在每个插槽中一直跟踪和等待?不。一点也不。它是一个基于硬件的过程,硬件有责任告知操作系统相关信息。Windows 兼容和 Linux 兼容社区出现在此处,他们讨论哪个硬件是哪个操作系统支持的。

请参阅此了解更多信息