关闭 C # 应用程序的最佳实践是什么?
我读到你可以用:
Environment.Exit(0); or Application.Exit();
但有什么区别呢?
此外,关于环境。退出(0) ,我以前在使用 Java 时使用过退出代码,但从未完全理解它们的用途。在 C # 中退出应用程序时它们扮演什么角色?
Application.Exit 用于 Windows 窗体应用程序——它通知所有消息泵它们应该终止,等待它们完成处理事件,然后终止应用程序。注意,它不一定强制应用程序退出。
Application.Exit
Environment.Exit 适用于所有 Windows 应用程序,但主要用于控制台应用程序。它使用给定的退出代码立即终止进程。
Environment.Exit
一般来说,应该在 Windows 窗体应用程序中使用 Application.Exit,在控制台应用程序中使用 Environment.Exit(尽管我更喜欢让 Main方法/入口点运行到完成,而不是在控制台应用程序中调用 Environment.Exit)。
Main
有关详细信息,请参阅 MSDN 文档。
在 C # 中退出应用程序时它们扮演什么角色?
和其他申请一样。基本上他们会被还给打电话的人。不相关,如果你的开始是一个图标双击。相关的是调用是一个批处理文件,它决定应用程序是否在返回代码上工作。所以,除非你写了一个需要这个的程序,否则返回的 dcode 是不相关的。
一个来自环境,一个来自 System.Windows.Forms? 应用程序。所有的功能应该没有很大的区别。
System.Windows.Forms.Application.Exit() -通知所有消息泵它们必须终止,然后在消息处理后关闭所有应用程序窗口。此方法停止所有线程上正在运行的所有消息循环,并关闭应用程序的所有窗口。此方法不强制应用程序退出。通常从消息循环中调用 Exit()方法,并强制 Run()返回。若要仅退出当前线程的消息循环,请调用 ExitThread()。这是运行 Windows 窗体应用程序时要使用的调用。作为一般指导原则,如果调用了 System.Windows.Forms.Application.Run(),请使用此调用。
System.Windows.Forms.Application.Exit()
Exit()
Run()
ExitThread()
System.Windows.Forms.Application.Run()
System.Environment.Exit(exitCode) -终止此进程并向底层操作系统提供指定的退出代码。此调用需要具有 SecurityPermissionFlag.UnmanagedCode权限。如果不这样做,就会发生 SecurityException错误。这是运行控制台应用时使用的调用。
System.Environment.Exit(exitCode)
SecurityPermissionFlag.UnmanagedCode
SecurityException
我希望最好使用 Application.Exit
请参阅以下链接:
对我来说,这是最好的解决办法
Thread.CurrentThread.Abort();
并强制关闭应用程序。
试试这个
System.Windows.Application.Current.Shutdown();
它也可以使用 NotifyIcon,请将此代码放在 App.xaml.cs 中 '
protected override void OnExit(ExitEventArgs e) { base.OnExit(e); App.nIcon.Visible = false; }