当前位置:网站首页>C# Thread IsBackground作用
C# Thread IsBackground作用
2022-08-02 03:37:00 【dotNET跨平台】
背景
之前在做一个定时下载任务的时候,使用的是一个主线程在执行任务;后面需求调整了,需要在启用一个子线程执行优先级更高的单独通道下载。于是下意识的这么做 new Thread
//创建后台线程
Thread bThread = new Thread(new ThreadStart(background1.RunLoop));
bThread.Name = "后台线程";复制代码一开始是没事么问题,后面测试了下发现当程序退出了,线程竟然还在下载,就是说线程没有随着程序的结束而结束;
问题就出在前台线程与后台线程的区别。
C#中的线程分前台线程和后台线程
对于前台线程来说,如果这些线程不退出,则主线程无法退出,则整个进程也无法退出。会造成即使界面窗口关掉了,但是进程管理器里还有该程序。因此,在关闭窗口时,需要编程显示的把这些前台线程关掉才行。但是,这样就会带来个问题,需要记录这些前台线程的实例才行,很不方便。为此,可以把线程定义为后台线程。后台线程与前台线程的唯一区别就是:后台线程不需要主动关闭。当所有前台线程都退出以后,主线程会自动的关掉后台线程,然后让进程退出。
后台线程的定义方法
定义线程为后台线程的方法为:
Thread backgroundThread = new Thread(new ThreadStart(longTest.RunLoop));backgroundThread.IsBackground = true; //定义为后台线程复制代码后台线程的问题
当然,定义为后台线程时,仍然有一种情况,会导致无法退出的情况。即后台线程引用了主界面的句柄时。很干脆的解决线程无法退出的方法;当然,这里有一个干脆的直接杀掉所有线程的方法:程序主窗口的 Closed 事件中添加代码:
Process.GetCurrentProcess().Kill();边栏推荐
- 深蓝学院-视觉SLAM十四讲-第六章作业
- Deep Blue Academy - Visual SLAM Lecture Fourteen - Chapter 5 Homework
- ES6中变量的使用及结构赋值
- 空卡安装设置树莓派4B并安装opencv+QT
- 科研笔记(八) 深度学习及其在 WiFi 人体感知中的应用(上)
- Jetson Nano 2GB Developer Kit 安装说明
- [Win11] PowerShell cannot activate Conda virtual environment
- 多主复制下处理写冲突(4)-多主复制拓扑
- SCI写作攻略——附带常见英语写作句式
- 强化学习(西瓜书第16章)思维导图
猜你喜欢

计算属性的学习

深蓝学院-视觉SLAM十四讲-第五章作业

深度学习基础之批量归一化(BN)

Win8.1下QT4.8集成开发环境的搭建

吴恩达机器学习系列课程笔记——第十六章:推荐系统(Recommender Systems)

Reinforcement Learning (Chapter 16 of the Watermelon Book) Mind Map

el-dropdown(下拉菜单)的入门学习

Research Notes (6) Indoor Path Planning Method Based on Environment Perception

Deep Blue Academy-Visual SLAM Lecture 14-Chapter 6 Homework

侦听器watch及其和计算属性、methods方法的总结
随机推荐
企业级的dns服务器的搭建
shell脚本的基础知识
QObject: Cannot create children for a parent that is in a different thread.
复制延迟案例(4)-一致前缀读
视觉SLAM十四讲--第13讲 实践:设计SLAM系统(最详细的代码调试运行步骤)
MapFi paper structure organization
详解CAN总线:什么是CAN总线?
Anconda spyder内引用OpenCV出现错误ImportError: numpy.core.multiarray failed to import
全球主要国家地区数据(MySQL数据)
允许Traceroute探测
七分钟深入理解——卷积神经网络(CNN)
金融行业案例 | 未来智安XDR助力银行业客户优化安全运营体系,有效提高告警研判率
开箱即用的职场办公常用功能:全文检索、便签、云笔记
Research Notes (6) Indoor Path Planning Method Based on Environment Perception
5个开源组件管理小技巧
深蓝学院-视觉SLAM十四讲-第四章作业
Jetson Nano 2GB Developer Kit 安装说明
el-select和el-tree结合使用-树形结构多选框
吴恩达机器学习系列课程笔记——第十五章:异常检测(Anomaly Detection)
其他语法和模块的导出导入