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消息。 它使用GetMessage
和PeekMessage
来检索消息,使用PostMessage
将已检索的消息发送到Windows过程。
如果你这样做
Form myForm = new Form(); myForm.Show();
它会显示表格并退出。 当您想从现有表单启动新表单时,将使用new Form()
和.Show()
。
希望这能回答你的问题。
使用主窗体启动应用程序,以便在关闭主窗体时应用程序终止。 它将与当前线程相关联。 它在消息循环中运行此表单。
消息循环意味着:它们对操作系统发布到应用程序主线程的消息起作用。 应用程序通过在称为“ 事件循环 ”的代码段中重复调用GetMessage(PeekMessage)函数,从消息队列接收这些消息。
应用程序运行()