关于Windows Form在执行后如何保留的任何想法,除非我们明确地触及关闭[X]标记。控制台应用程序不是这种情况吗?
我想知道这是如何由.NET内部管理的?
提前致谢
答案 0 :(得分:0)
您错了:Windows窗体程序仅在执行期间保留,并且不会在其执行后保留。它只在您退出程序后停止执行,例如单击关闭[X]按钮。
您是想要问一下控制台和Windows应用程序之间的区别,以及从命令行启动时它们执行方式有何不同?这由(PE)可执行标头中的标志控制,该标头由链接器的/ subsystem:console或/ subsystem:windows选项设置。在我看来,这是一种完全疯狂的方法; Unix为此使用了更为合理的方法(用户可以自己指定shell是否等待它。)
这对于.NET和本机可执行文件都是一样的。
答案 1 :(得分:0)
为了得到这种差异,我相信您应该阅读有关Windows Messages
(Messages Queue
,Message loop
等)的内容。例如here。 .Net在这里没有带来任何新东西,它更多的是关于Windows应用程序本身。
答案 2 :(得分:0)
WinForms的代码多于您键入的代码。它们不会关闭写入,因为代码处于循环中,它不断地检查事件,如果事件关闭被触发,那么它们将关闭。
想象一下,您在控制台应用程序中编写了类似的代码:
while(true)
{
Console.WriteLine("Enter a Number: ");
int x;
Console.Read(X);
if(x==-1) break;
Console.Write(x*x);
}
循环将永远重复,直到输入-1,你可以说类似于winforms的东西。当然这是过于简单化,但想象一下这样的事情。
如果你想了解更多信息,你应该像Snowbeard所说的那样研究Windows Messages (Messages Queue, Message loop