2012-01-23 13 views
0

当应用程序关闭时关闭整个windows应用程序窗体的最佳方式是什么?显然,在我退出应用程序后,应用程序仍在运行。使用c在winforms中关闭整个窗体#

+1

Application.Exit() –

+0

Application.Exit()显示一些错误 –

+1

什么错误?...... –

回答

2

继巴厘岛的评论,请使用:在http://msdn.microsoft.com/en-us/library/ms157894.aspx(重点煤矿)

Application.Exit() 

详情:

exit方法停止所有线程所有正在运行的消息循环和 关闭的所有窗口应用。此方法不会 必然强制应用程序退出。 Exit方法通常是在消息循环中调用的 ,并强制Run返回。 要仅退出当前线程的消息循环,请调用ExitThread。

4

如果在应用程序的主窗体关闭后应用程序仍在运行,那么您的某些线程就会挂起,而不是完成它的工作。你应该确定它,并确保它优雅地关闭。完成后,当您关闭主窗体时,您的应用程序过程应该很好地消失,而无需带出武器并拍摄它。

+1

+1对'带出武器并射击它'多数民众赞成真棒:) –

0

不是关闭程序最漂亮的方式,但如果您只想完全结束整个过程,只需运行Process.Kill()就可以了。如果有任何未完成的线程正在运行,最好先优雅地关闭它们。如果你不关心什么也没有完成,这将这样的伎俩:

foreach (Process p in Process.GetProcesses()) 
{ 
    if (p.ProcessName.Contains("appname")) 
    { 
     p.Kill(); 
    } 
} 
0

理想情况下,你应该找出为什么你的应用仍在游逛按Fredkrik的答案。但是,如果你想强制你的应用程序退出,Environment.Exit是你想要的。 Application.Exit只能退出当前的消息泵(尽管承认你只会继续使用,除非你已经多次调用了Application.Run)。

从docco:

Environment.Exit方法 终止此过程,并给出了底层操作系统指定的退出代码。

Application.Exit方法 通知所有消息泵必须终止,然后关闭该消息后,所有应用程序窗口已被处理。

相关问题