用户在WinForms中执行某些操作(例如点击按钮),并在UI线程上执行任意代码,然后在UI线程上执行该操作的事件处理程序之前,这是否可能发生?(编辑:我不想自己做这个。我想知道它是否真的会发生。也就是说,我需要担心吗?)
我对.NET GUI事件中的事件处理程序如何调用有点模糊,并且我遇到了一个重要的实现细节。
编辑: 我不关心如何连接事件处理程序或甚至如何以编程方式引发事件。我关心的是已经连接的事件处理程序作为UI操作结果如何被调用的底层细节。更具体地说,我想知道调用事件处理程序(或导致其发生的事件序列)是否只是添加到窗体的消息循环中。可能更容易“视觉化”UI线程...
时间 ---------> 检测到物理点击....(其他东西可以在此命中UI线程)..........调用单击事件处理程序
我对.NET GUI事件中的事件处理程序如何调用有点模糊,并且我遇到了一个重要的实现细节。
编辑: 我不关心如何连接事件处理程序或甚至如何以编程方式引发事件。我关心的是已经连接的事件处理程序作为UI操作结果如何被调用的底层细节。更具体地说,我想知道调用事件处理程序(或导致其发生的事件序列)是否只是添加到窗体的消息循环中。可能更容易“视觉化”UI线程...
时间 ---------> 检测到物理点击....(其他东西可以在此命中UI线程)..........调用单击事件处理程序
Control.WndProc()
和 Windows 过程的一般知识。这些是 Win32 API(Windows Forms 基于此)中所有 UI 事件处理的基础。 - stakx - no longer contributing