• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#中WinForm程序退出方法技巧总结

C#中WinForm程序退出方法技巧总结

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#winform程序打包,c#winform程序设计,c#winform,c#winform窗体美化,c#winform教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例总结了C#中WinForm程序退出方法技巧。分享给大家供大家参考。具体分析如下:

在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就来详细介绍一下。

1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;

2.Application.Exit();  强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;

3.Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;

4.System.Environment.Exit(0);   这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。

下面看一些实例

当我打开一个子窗体,进行某项操作时,如果字窗体中有循环操作时。如果运行中我关闭子窗体,发现窗体虽然关闭了,但子窗体中的循环程序却没有退出,一直在 执行,并占用着系统资源,直到循环结束,才真正的释放资源。尽管我在字窗体的Closed事件中写了如下代码:
{
         this.Dispose();
         this.Close();
}</div>

后来从查MSDN和从网上查资料才得知,Dispose()方法,虽然能释放当前窗体的资源,却不能强制结束循环,要想强制突出当前程序要用:System.Environment.Exit(int exitcode)方法;该方法:终止当前进程并为基础操作系统提供指定的退出代码。

如下则问题解决:

{        
 System.Environment.Exit(System.Environment.ExitCode);  
 this.Dispose();
 this.Close();
}</div>
 
或者把它放到事件里:
   ==   DialogResult.No)
...{
   for(int j=1; j<=i; j++)
  ...{
      listBox1.Items.Add(j);
   }  
}
System.Environment.Exit(System.Environment.ExitCode);</div>
 
还有一种方法:

或者 或者 或者 不过以上方法,都是强制直接退出了整个程序,不只是关闭子窗体。可能还会引发某些问题。

我感觉最好方法的就是,在子窗体的Closing事件中,写循环退出条件,这样就可以避免某些未知的错误,而且可以只关闭子窗体,并释放子窗体占用的资源。
Application.Exit(); 方法停止在所有线程上运行的所有消息循环,并关闭应用程序的所有窗口。
Application.Exit 是一种强行退出方式,就像 Win32 的 PostQuitMessage()。它意味着放弃所有消息泵,展开调用堆栈,并将执行返回给系统。

希望本文所述对大家的C#程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享两种实现Winform程序的多语言支持的多种解决方案
  • C#中WinForm程序退出方法技巧总结
  • C# WinForm应用程序降低系统内存占用方法总结
  • C# WinForm程序完全退出的问题解决
  • 使用C# Winform应用程序获取网页源文件的解决方法
  • 解读在C#中winform程序响应键盘事件的详解

相关文章

  • 2017-05-28C#引用访问权限分析
  • 2017-05-28c#自带缓存使用方法 c#移除清理缓存
  • 2017-05-28C#实现将选中复选框的信息返回给用户的方法
  • 2017-05-28c#继承与多态使用示例
  • 2017-05-28C#简单实现文件上传功能
  • 2017-05-28WinForm实现关闭按钮不可用或隐藏的方法
  • 2017-05-28C#实现简单的汽车租赁系统
  • 2017-05-28C#实现调用迅雷下载的方法
  • 2017-05-28C#实现保存文件时重名自动生成新文件的方法
  • 2017-05-28C#中比较常用的DateTime结构的使用方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C# String Replace高效的实例方法
    • .net2.0+ Winform项目实现弹出容器层
    • ASP.NET C#中Application的用法教程
    • C#给图片加水印的简单实现方法
    • C#图像亮度调整的方法
    • C#编程实现Excel文档中搜索文本内容的方法及思路
    • c# dataTable 合并两个列到一个新列中的简单实例
    • C#使用SqlBulkCopy批量复制数据到数据表
    • C#获得MAC地址(网卡序列号)的实现代码
    • c#动态类型,及动态对象的创建,合并2个对象,map实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有