C# - Application.Run()

时间:2012-01-20 11:22:27

标签: c# .net

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

如果我有

Form myForm = new Form();

以下行实际上做了什么:

Application.Run(myForm);

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

我总是发现msdn是向新来者正确解释材料的不良资源

2 个答案:

答案 0 :(得分:15)

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

简答:

  

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

长答案:

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

如果你这样做

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

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

希望这能回答你的问题。

答案 1 :(得分:4)

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

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

Application Run()