C# Thread IsBackground作用

背景

之前在做一個定時下載任務的時候,使用的是一個主線程在執行任務;后面需求調整了,需要在啟用一個子線程執行優先級更高的單獨通道下載。于是下意識的這么做 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();

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284168.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284168.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284168.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

產品經理的分類及術語詳解

一、按項目分類 1、前端型PM 一句話概述:制造口碑帶來流量。 偏用戶體驗&運營,通過極致的產品設計&吸引眼球的產品營銷策略,打造口碑,創造一款用戶量巨大的產品。 【常見術語】 UCD(User Centered Design…

Mybatis 攔截器

Mybatis定義了四種攔截器: Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)ParameterHandler (getParameterObject, setParameters)ResultSetHandler (handleResultSets, handleOutputParameters)StatementHandler …

1295 N皇后問題

1295 N皇后問題 時間限制: 2 s 空間限制: 128000 KB 題目等級 : 黃金 Gold 題目描述 Description在nn格的棋盤上放置彼此不受攻擊的n個皇后。按照國際象棋的規則,皇后可以攻擊與之處在同一行或同一列或同一斜線上的棋子。n后問題等價于再nn的棋盤上放置n個皇后&…

CDN的強大功能

2019獨角獸企業重金招聘Python工程師標準>>> CDN,內容分發網絡,除了用作網站加速外,還能夠更好的保護網站不被攻擊。防護網站不被攻擊的功能成就了CDN運行中的主要責任。CDN 防護原理是其主要在于在相關節點中成功的建立動態加速機…

IDEA創建SpringBoot項目無法連接https://start.spring.io(已解決)

錯誤: 方法: 將:https://start.spring.io 更換為 ?https://start.aliyun.com

論人生自動化

就像設備一樣基本都是由三部分組成,輸入,處理,輸出,三部分。當輸出與輸入兩者有比較,自然就產生了反饋,正反饋或者負反饋,有利于輸出的穩定性。有一些東西或者事情能達到閉環,則一切…

MySQL默認數據庫簡介

類似于MS SQL Server等大型數據庫,MySQL數據庫也提供了內置的數據庫,它們是:INFORMATION_SCHEMAmysqltest1.information_schema其中,第一個數據庫INFORMATION_SCHEMA提供了訪問數據庫元數據的方式。元數據是關于數據的數據&#x…

mysql常見監控項

1、MySQL服務運行狀態 約定所有MySQL服務都必須以ip1(內網ip)來綁定,每個機器只有一個ip1,可以有多個端口,即多個MySQL Server。采集程序讀取ip端口信息文件來判斷server是否存在。 sockParamps aux | grep -P "m…

2005年AMC8數學競賽中英文真題典型考題、考點分析和答案解析

今天距離2024年的AMC8美國數學競賽舉辦已不足一個月了,趕緊利用周末的時間刷刷真題,查漏補缺吧!如果您有任何關于AMC8比賽的任何問題都可以問我,關于題目的解析也可以交流。 今天我們來看看2005年AMC8競賽的五道典型考題。歡迎您查…

WPF效果第一百九十三篇之登錄實現

前面一直在玩耍ListBox(最愛),大周末的就適合在家吹著風扇擼著代碼;今天來分享一個很簡單實用的登錄,來看看最終實現的效果:1、關于軟件啟動后焦點實現:<Style TargetType"Border"><Style.Triggers><DataTrigger Binding"{Binding IsEmptyAccoun…

IDEA中安裝并使用JRebel熱部署插件

文章目錄 作者簡介引言導航熱門專欄推薦概述安裝JRebel注冊JRebel配置JRebel最后小結導航熱門專欄推薦作者簡介 作者名&#xff1a;編程界明世隱 簡介&#xff1a;CSDN博客專家&#xff0c;從事軟件開發多年&#xff0c;精通Java、JavaScript&#xff0c;博主也是從零開始一步步…

UWP: 實現 UWP 應用自啟動

原文:UWP: 實現 UWP 應用自啟動在上一篇文章中&#xff0c;我們實現了使用命令行來啟動 UWP 應用&#xff0c;在這一篇文章中&#xff0c;我們會實現 UWP 應用自啟用的實現&#xff0c;也即開機后或用戶登陸后&#xff0c;應用自己啟動。這些特性原來都是 Win32 程序所具備的&a…

選擇 GCD 還是 NSTimer ?

我們常常會延遲某件任務的執行&#xff0c;或者讓某件任務周期性的執行。然后也會在某些時候需要取消掉之前延遲執行的任務。 延遲操作的方案一般有三種&#xff1a; 1.NSObject的方法&#xff1a; 2.使用NSTimer的方法&#xff1a; 3.使用GCD的方法&#xff1a; 一般情況下&am…

完美解決Idea unable to access git 錯誤

在命令行執行 如下命令即可 git config --global --unset http.proxy git config --global --unset https.proxy

Web框架 性能評測 -- C# 的性能 和 Rust、C++并駕齊驅

自從2021年2月第20輪公布的測試以后&#xff0c;一年半后 的2022年7月19日 發布了 TechEmpower 21輪測試報告&#xff1a;Round 21 results - TechEmpower Framework Benchmarks。Techempower benchmark是包含范圍最廣泛的web框架性能測試&#xff0c;覆蓋了比較典型的使用場景…

CF449 C. Jzzhu and Apples

1 /*2 http://codeforces.com/problemset/problem/449/C3 cf 449 C. Jzzhu and Apples4 數論素數貪心5 */6 #include <cstdio>7 #include <algorithm>8 using namespace std;9 const int Nmax100005; 10 int is_prime[Nmax]; 11 int book[Nmax]; 12 int cnt[Nmax];…

【GlobalMapper精品教程】027:路徑剖面和和視線工具的使用

文章目錄 一、路徑剖面簡介二、創建剖面圖1. 加載DEM2. 創建剖面圖3. 計算填挖方3. 保存剖面圖一、路徑剖面簡介 路徑剖面視線工具允許您使用加載的高程數據集沿用戶指定的路徑獲取垂直剖面。 要定義生成3D路徑剖面所遵循的路徑,只需單擊鼠標左鍵選擇路徑的點,然后石鍵單擊…

QT中VideoProbe的簡介和實現

一、遇到問題在Android機上使用QT進行圖像處理程序設計的時候&#xff0c;遇到的一個比較明顯的問題就是圖片采集的問題----攝像頭獲得是實時的視頻&#xff0c;如果我們想從中動態地截獲圖片&#xff0c;并且轉換成Mat的格式&#xff0c;那么僅僅是靜態的imagecapturee就無法完…

bzoj2751[HAOI2012]容易題(easy)

bzoj2751[HAOI2012]容易題(easy) 題意&#xff1a; 已知一個數列A對于所有的A[i]都是1~n的自然數&#xff0c;一些A[i]不能取一些值&#xff0c;求出所有可能的數列的積的和 mod 1000000007的值。 題解&#xff1a; 題目中的n≤109實際上是109……首先推個方程s[l,r]s[l,k]*s[k…