杀死应用程序实例的最佳方法是什么? 我知道这三种方法:
Application.Exit()
Environment.Exit(0)
Process.GetCurrentProcess()。杀()
任何人都可以告诉我哪个更好或者在使用上述哪个时更合适?
答案 0 :(得分:20)
来自c#faq的指南:
System.Windows.Forms.Application.Exit() - 通知所有消息泵必须终止,然后在处理完消息后关闭所有应用程序窗口。此方法停止所有线程上的所有正在运行的消息循环,并关闭应用程序的所有窗口。此方法不会强制应用程序退出。 Exit方法通常在消息循环中调用,并强制Run返回。要仅退出当前线程的消息循环,请调用ExitThread。如果您正在运行WinForms应用程序,则这是要使用的调用。作为一般准则,如果您调用了System.Windows.Forms.Application.Run,请使用此调用。
System.Environment.Exit(exitCode) - 终止此进程并为底层操作系统提供指定的退出代码。此调用要求您具有SecurityPermissionFlag.UnmanagedCode权限。如果不这样做,则会发生SecurityException错误。如果您正在运行控制台应用程序,则这是要使用的调用。
可能不推荐杀死该过程。
答案 1 :(得分:2)
如果这是Windows窗体应用程序,请使用Application.Exit()。这将很好地关闭该计划。
答案 2 :(得分:0)
只需快速回答,我会一直使用“退出”选项。这是一种更清洁的方式。
“杀死”一个进程就意味着,因此程序无法完成它可能想做的任何清理工作(比如保存配置,保存其他文件等等)。除非你知道这个过程是什么,并且它没有任何“清理”要做,即便如此,使用“退出”也更简洁。
你提到的两个“退出”选项之间似乎没有任何区别,我会打赌第一个只是隐含地传递零值。
答案 3 :(得分:-4)
foreach (Process proc in Process.GetProcessesByName("WindowsFormsApplication1.vshost"))
{
proc.Kill();
}