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

标签 c# winforms process

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

  1. Application.Exit()

  2. Environment.Exit(0)

  3. Process.GetCurrentProcess().Kill()

谁能告诉我哪个更好,或者什么时候使用上面的每一个是合适的?

最佳答案

来自 C# 常见问题解答的指南:

System.Windows.Forms.Application.Exit() - 通知所有消息泵它们必须终止,然后在处理完消息后关闭所有应用程序窗口。此方法停止所有线程上所有正在运行的消息循环并关闭应用程序的所有窗口。此方法不会强制应用程序退出。 Exit 方法通常在消息循环中调用,并强制 Run 返回。要仅退出当前线程的消息循环,请调用 ExitThread。如果您正在运行 WinForms 应用程序,这是要使用的调用。作为一般准则,如果您调用了 System.Windows.Forms.Application.Run,​​请使用此调用。

System.Environment.Exit(exitCode) - 终止此进程并为底层操作系统提供指定的退出代码。此调用要求您具有 SecurityPermissionFlag.UnmanagedCode 权限。如果不这样做,则会发生 SecurityException 错误。如果您正在运行控制台应用程序,这是要使用的调用。

可能不建议终止进程。

关于c# - 杀死应用程序实例的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4019595/

相关文章:

c# - 重写 System.Web.Security.Roles 函数?

c# - Automapper 中属性的严格类型验证

c# - 使组件根据大小变化填充最大空白

python - multiprocessing.Process subprocess.Popen 完成吗?

c# - 如何安装XUnit Visual Studio Run once per station

c# - 将大量ID发送到SQL Server进行过滤时,有没有办法提高性能?

c# - 关于更新 winforms 标签文本的问题

c# - 在 C# Windows 应用程序中增加 Crystal Reports 的宽度

c++ - 计算C++中相同运行进程的总数

java - java中如何获取进程结束状态?