Application.Exit
-
21-08-2019 - |
题
我使用VSTS 2008 +的.Net 3.5 + C#开发Windows窗体应用程序。我的困惑是,似乎Application.Exit不强制应用程序终止?如果不是,该方法应该我叫提出申请终止?
EDIT 1:
通常的主要方法是这样的,如何退出主功能正常,而无需调用Environment.Exit?
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
try
{
Application.Run(new Form1());
}
catch (Exception ex)
{
Console.WriteLine (ex.Message);
}
}
预先感谢, 乔治
解决方案
Application.Exit
实际上只是询问消息循环非常平缓。
如果您希望您的应用程序退出,最好的办法是优雅使出来Main
,而干净地关闭任何额外的非后台线程。
如果你想成为残酷...... Environment.Exit
一>或 Environment.FailFast
? 注意这是严酷的 - 。约等于杀死自己Process
其他提示
尝试以下方法:
Process.GetCurrentProcess().Kill();
Environment.Exit
不与工作的Winforms和Environment.FailFast
抛出其自身的异常。
如果当你调用Application.Exit
有(显然)的东西,阻止它这样做你的应用程序不正常退出。这可以从e.Cancel = true
事件的形式设置FormClosing
什么,一个线程不是一个后台线程仍在运行。我会建议你仔细研究它到底是什么,让您的过程中活着,并关闭在一个不错的方式。这应该使您的应用程序关闭很好地为好。
典型地,在winforms应用程序,它应该是足以关闭的主要形式。
我用
if (System.Windows.Forms.Application.MessageLoop)
{
// Use this since we are a WinForms app
System.Windows.Forms.Application.Exit();
}
else
{
// Use this since we are a console app
System.Environment.Exit(1);
}
这 http://geekswithblogs.net/mtreadwell/archive/ 2004/06/06 / 6123.aspx
我有同样的问题,当我发现在程序中打开一个新的窗体/窗口,只隐藏了第二形式(未关闭的话),将防止主窗体从经由Application.Exit()适当地退出;
有在该情况下两种解决方案。首先是简单的主要形式,而不是Application.Exit上使用关闭()()。第二种解决方案是使用下面的代码:
if (secondForm != null && !secondForm.IsDisposed) secondForm.Dispose();
我发现,只是所有你需要做的是不是做application.exit和所有你不得不做的就是把 结束 简单地够结束命令关闭它