C# – Application.Run()

我刚刚开始.Net开发(C#)并且遇到了一些让我有些困惑的代码….

如果我有

Form myForm = new Form(); 

以下行实际上做了什么:

 Application.Run(myForm); 

它本质上与myForm.ShowDialog()或myForm.Show()做同样的事情(这就是我想的,当运行表单时会这样做)…..

我总是发现msdn是一个很好的资源,无法向新来者正确解释材料

Application.Run(myForm); 使该表单对用户可见。 它是第一个加载到内存中的表单。 它在消息循环中运行此表单,以便您获得所有用户事件。

简答:

Application.Run开始在当前线程上运行标准应用程序消息循环。

答案很长:

Application.Run导致Windows应用程序进入Winmain内的消息循环,以处理操作系统发布到消息队列的各种Windows消息。消息循环“循环”,直到它收到WM_QUIT消息。 它使用GetMessagePeekMessage来检索消息,使用PostMessage将已检索的消息发送到Windows过程。

如果你这样做

 Form myForm = new Form(); myForm.Show(); 

它会显示表格并退出。 当您想从现有表单启动新表单时,将使用new Form().Show()

希望这能回答你的问题。

使用主窗体启动应用程序,以便在关闭主窗体时应用程序终止。 它将与当前线程相关联。 它在消息循环中运行此表单。

消息循环意味着:它们对操作系统发布到应用程序主线程的消息起作用。 应用程序通过在称为“ 事件循环 ”的代码段中重复调用GetMessage(PeekMessage)函数,从消息队列接收这些消息。

应用程序运行()