c# winform 关闭窗体时同时结束线程实现思路(转)

前不久,做一个winform小程序,是给客户导数据用的。当时就发现调试的时候,线程有点问题,到某个点时就走不动了。但是运行确实没有问题的。
只是在关闭窗体后,资源管理器里,一大堆进程。

当时,客户急着用,小测了下,导出数据无误,进程就先不管了。
后来自己去查资料,发现只要在线程那里设置个属性

复制代码 代码如下:

Thread th = new Thread(Excute);
th.IsBackground = true;这样就解决问题了。

这个属性的意思就是把线程设置为后台线程。
然后关闭进程的同时,线程也会随之关闭。
不知道各位还有什么妙招,多多指导哈

https://www.jb51.net/article/33840.htm

原文地址:https://www.cnblogs.com/xihong2014/p/12584363.html

时间: 2024-11-02 02:41:36

c# winform 关闭窗体时同时结束线程实现思路(转)的相关文章

winform退出或关闭窗体时弹窗提示代码:转

winform退出或关闭窗体时弹窗提示代码,当我们点击窗体的 X 按钮时,会弹出一个对话框,询问我们是直接退出,还是最小化到托盘,还是取消这个行为.或是是否保存当前修改等等.以下以最小化到托盘为例.        首先, 要确定已经将控件NotifyIcon拖到应用窗体中,属性name为notifyicon1. 然后, 双击窗体的FormClosing的事件 ,具码内容如下: private void Form1_FormClosing(object sender, FormClosingEve

C#屏蔽Alt+F4,解决Alt+F4关闭窗体时对话框NO后,线程不退出问题

//1.将窗体的属性KeyPrieview设置为true //keypreview属性为true的时候,就可以响应键盘事件v //2.在窗体KeyDown事件中加如下代码 private void Form1_KeyDown(object sender, KeyEventArgs e) { if( (e.KeyCode == Keys.F4)&&(e.Alt==true)) //屏蔽ALT+F4 { e.Handled = true; } } //e.Handled属性:获取或设置一个值,

winform关闭窗体友好提示!

From窗体的关闭事件,避免和FormClosed混淆. 1 private void Form1_FormClosing(object sender, FormClosingEventArgs e) 2 { 3 DialogResult dr = MessageBox.Show("系统提示", "是否退出?", MessageBoxButtons.YesNo, MessageBoxIcon.Information); 4 if (dr == DialogResul

winform 关闭窗体 释放内存

private void formclosed        {            FlushMemory();        } [DllImport("kernel32.dll")]        private static extern bool SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);        private static void FlushMemory()       

WinForm关闭窗体彻底的退出方式

//System.Environment.Exit(0); //Process.GetCurrentProcess().Kill(); //System.Threading.Thread.CurrentThread.Abort();

关闭窗体后,进程仍然在运行的问题重现与解决

1 问题陈述 在开发中,遇到这样一个问题: 点击程序主窗体右上角的叉号关闭应用程序后,程序的进程却没有关闭. 通过查阅资料,了解到,产生此类问题的原因主要有以下两点: 1)程序中存在死循环. 2)程序为多线程程序,且在窗体关闭后,仍有线程在工作. 本文将针对此类问题,进行重现并提出解决方案. 2 场景再现 @场景1 新建Windows应用程序CloseWindowExp,程序每隔一秒钟改变一次窗体的背景色. 程序运行后的效果,如下图所示(变化的过程,就请大家在脑子中想象一下吧). 程序的主要代码

FineUI小技巧(4)关闭窗体那些事(另附24张专业版高清大图)

前言 FineUI中的Window控件常用作选择.新增或编辑内容.而关闭Window控件却有很多技巧,了解这些技巧有助于项目的快速开发. 如何关闭Window控件 第一个问题就是如何关闭Window控件,最明显的方式就是右上角的关闭图标了.总的说来,有三种方式: ESC按键(在Window控件所在页面获取焦点的情况下,按下键盘的ESC将会关闭当前激活窗体) 窗体右上角的关闭图标 用户自定义的关闭按钮 前两种方式自不必说,那么如何自定义关闭按钮呢?有两种做法: 按钮禁用回发,在页面初始化时注册关闭

WPF加载Winform窗体时 报错:子控件不能为顶级窗体

一.wpf项目中引用WindowsFormsIntegration和System.Windows.Forms 二.Form1.Designer.cs 的 partial class Form1 设置为:public partial class Form1 三.代码如下: XXXX.Form1 Zhuwindow = new XXXX.Form1(); Zhuwindow.TopLevel = false; Zhuwindow.FormBorderStyle = System.Windows.Fo

Delphi 如何解决在DLL的入口函数中创建或结束线程时卡死

先看一下使用Delphi开发DLL时如何使用MAIN函数, 通常情况下并不会使用到DLL的MAIN函数,因为delphi的框架已经把Main函数隐藏起来 而工程函数的 begin  end 默认就是MAIN函数的DLL_PROCESS_ATTACH事件的处理代码,如需要完整的处理其他事件, 如 DLL_PROCESS_DETACH,DLL_THREAD_ATTACH, DLL_THREAD_DETACH,可在工程文件中做如下处理: procedure DLLEntryPoint(Reason:D