c# 安全退出窗口

在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);   这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。

时间: 2024-12-24 04:27:09

c# 安全退出窗口的相关文章

bat命令之执行脚本后不退出窗口

https://www.jianshu.com/p/efc32cb3ba9f 一般我们的解决办法是在最后加上pause命令让它暂停执行以达到不退出的目的: @echo on tasklist /fi "imagename eq nginx.exe" pause 进一步,如果我们还有需求,在得到结果后继续输入命令,比如停掉 nginx,pause 命令就不行了. @echo on tasklist /fi "imagename eq nginx.exe" @cmd /

vim多窗口, 常用命令集

1.打开多个窗口 打开多个窗口的命令以下几个: 横向切割窗口 :new+窗口名(保存后就是文件名) :split+窗口名,也可以简写为:sp+窗口名 纵向切割窗口名 :vsplit+窗口名,也可以简写为:vsp+窗口名 vim -o file1 file2 ...  #水平打开多窗口, vim -O file1 file2 ...  #垂直打开多窗口, vim -d file1 file2 ...  #垂直打开多窗口,并且进行比较 vimdiff file1 file2 ..  #等同于上一句

Android5.0L退出APP横竖屏切换导致的触摸屏输入(Touch Event)无效问题分析(Key Event仍然有效)

一.问题现象 1.多次进出需要强制横屏的app,比如Real FootBall2015,在退出app的时候会有概率出现退出卡顿,然后TP无法输入的问题. 2.出问题时Power key有响应. 3.此问题同时在Driver only上有复现. Platform:MSM8916 Android版本:5.0.2L BuildType:user 系统软件版本:vA6P+L5P0 系统RAM:1GB 参考机行为: 1.ALTO4.5TMO在同样的简单测试下没有重现此问题,后经分析代码发现是4.4.4KK

pyside 添加菜单栏,窗口状态栏,工具栏

这三个放到一起,个人认为比较有可比性. 另外该写的解释我都记到注释里面了 话不多说,show me the code 菜单栏, # ubuntu16.04触发关联事件不成功,应该是ubantu的全局窗口模式的问题,其他环境运行正常. 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2016-06-02 03:25:37 4 # @Author : Nevermoreluo ([email protected]) 5 ''

vim中多标签和多窗口的使用

1.打开多个窗口 打开多个窗口的命令以下几个: 横向切割窗口 :new+窗口名(保存后就是文件名) :split+窗口名,也可以简写为:sp+窗口名 纵向切割窗口名 :vsplit+窗口名,也可以简写为:vsp+窗口名 vim -o file1 file2 ...  #水平打开多窗口, vim -O file1 file2 ...  #垂直打开多窗口, vim -d file1 file2 ...  #垂直打开多窗口,并且进行比较 vimdiff file1 file2 ..  #等同于上一句

hello-win程序入门win32基本窗口框架全解析

在VC++6.0环境中创建win32程序 选择第三个这时可以运行看到hello world了. 程序解析: #define MAX_LOADSTRING 100  \\定义最大字长</span> HINSTANCE hInst; \\当前进程资源的句柄 TCHAR szTitle[MAX_LOADSTRING];   \\窗口上方显示的标题 TCHAR szWindowClass[MAX_LOADSTRING]; \\窗口定义的名称 实际上前面第一行的句柄就相当于ID号,每运行一个进程都需要系

vim 多标签 多窗口

1.打开多个窗口 打开多个窗口的命令以下几个: 横向切割窗口 :new+窗口名(保存后就是文件名) :split+窗口名,也可以简写为:sp+窗口名 纵向切割窗口名 :vsplit+窗口名,也可以简写为:vsp+窗口名 vim -o file1 file2 ...  #水平打开多窗口, vim -O file1 file2 ...  #垂直打开多窗口, vim -d file1 file2 ...  #垂直打开多窗口,并且进行比较 vimdiff file1 file2 ..  #等同于上一句

Qt自定义窗口,继承自QDialog,执行后返回rejected的问题分析

自定义了一个弹出窗口,添加了一个确定按钮,并定义了槽函数,处理结束后,调用 close(); 退出窗口,监测到返回值是Rejected十分不解,反复查看帮助文档,后来发现,使用Close()关闭窗口,本身就是拒绝窗口结果. 要调用 accept(); 来关闭窗口,返回值才会是Accepted.

Windows10文件目录下添加 Shift+右键打开管理员Powershell窗口

背景(可略过) 目前在调试 Python 程序,遇到了一个问题:当程序中包含多线程时,使用 IDLE 运行是不会执行多线程的语句的,在网上一顿搜罗了解到这种情况可以换成在命令行下执行.好像用 PyCharm 也可以,没有验证过.emmm,之前运行包含多线程的程序都是在 Linux 环境下(树莓派 Raspain.Ubuntu16.04.Ubuntu18.04)操作的,本身就是 dash 命令行.没想到 Windows 下还有这种问题. 命令行就命令行吧,所以我选择 Powershell.在我放程