C#开发的应用程序——退出时需要执行的代码
2018-11-07 11:18
225 查看
转载自
开发的各种退出应用程序的代码。并详细介绍了各实现方法的不同点。
Application.Exit();//好像只在主线程可以起作用,而且当有线程,或是阻塞方法的情况下,很容易失灵
this.Close();//只是关闭当前窗体。
Application.ExitThread();//退出当前线程上的消息循环,并关闭该线程上的所有窗口。 也会失灵
Environment.Exit(0); //前面三种方法都不能很好的退出程序,此方法可以完全退出程序,这个要强制得多。
Process.GetCurrentProcess().Kill();//此方法完全奏效,绝对是完全退出。
一些操作可以关注:GC.Collect()
另:
1,将主线程设置为后台进程。方法是将主线程的isBackground = true。据说,这样在关闭主程序时后关闭主线程,并关闭所有的线程。
2,有人列出了c#程序退出的几种方法:
(1)Application.Exit()//好像只在主线程可以起作用,而且当有线程,或者是阻塞方法的情况下,很容易失灵。 (2) System.Environment.Exit(0) //无论在主线程或其它线程,都可以吧程序结束干净 (3)Application.ExitThread();
但是我发现(2)这个方法在.netFrame Work compact下是没有的我这样
最后我的解决办法是:强制退出程序进程。代码如下:
System.Diagnostics.Process tt = System.Diagnostics.Process.GetProcessById(System.Diagnostics.Process.GetCurrentProcess().Id); tt.Kill();
当然,这种方法很暴力。良好的程序设计应该是,所有的线程都有条件可以结束循环以退出(包括timer)。在程序退出时触发所有线程的终止条件。
相关文章推荐
- C#开发的应用程序做退出程序的代码
- c#开发的应用程序做退出程序的代码
- c#开发的应用程序做退出程序的代码
- SQL Server 第四堂课,创建存储过程。存储过程是一组编译在单个执行计划中的transact-SQL语句。存储过程相当于C#函数,可以允许模块化程序设计,允许更快执行如果某操作需要大量transct-SQL代码或需要重复执行,将在创建存储过程中对其进行分析和优化。
- iOS开发-使用代码退出应用程序,带动画。
- IOS开发退出应用程序的代码
- 使用 Visual Studio .NET 客户端执行自动化功能后不退出 Office 应用程序 代码
- 1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括: 正确的使用数据库MetaData方法 只获取需要的数据 选用最佳性能的功能 管理连
- Git 远程仓库(Github) Git 并不像 SVN 那样有个中心服务器。 目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要
- 如何用C#动态编译应用程序来执行自定义代码
- 逐浪CMS2 x3.8新功能:定时执行C#代码让二次开发虎虎添翼
- IOS开发退出应用程序的代码
- 在另一个应用程序域中执行代码(C# 编程指南)
- iOS开发-使用代码退出应用程序,带动画。
- 在运行程序时报错:"如果在 Code First 模式下使用,则使用 T4 模板为 Database First 和 Model First 开发生成的代码可能无法 正常运行。若要继续使用 Database First 或 Model First,请确保在执行应用程序的 config 文件中指 定 Entity Framework 连接字符串。若要将这些从 Database First 或 Mod
- 在AE二次开发中出“正试图在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。”异常解决方案
- C# 1.Lc.exe已退出,代码为-1
- Visual Studio 2008 中的可执行文件中嵌入清单文件(manifest) Vista/win7 UAC中把应用程序标注为“需要管理员权限”
- 【C#】对“xxxx::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用。
- 有简易通用权限管理后台的快速C# ASP.NET开发的例子应用程序卖给了曾长期开发JAVA银行程序的大哥