杀死应用程序实例的最佳方法

时间:2010-10-25 23:08:53

标签: c# winforms process

杀死应用程序实例的最佳方法是什么? 我知道这三种方法:

Application.Exit()

Environment.Exit(0)

Process.GetCurrentProcess()。杀()

任何人都可以告诉我哪个更好或者在使用上述哪个时更合适?

4 个答案:

答案 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();

        }