一、什么是線程
操作系統分配處理器時間的基本單元,也是一個獨立的運行單元。
特點:
①默認情況,一個進程只包含一個線程,從程序的開始到執行結束;
②線程可以派生自其它線程,所以一個進程可以包含不同狀態的多個線程,來執行程序的不同部分;
③一個進程中的多個線程,將共享該進程的資源;
用一個通俗的例子講:一個進程相當於一個工廠,線程就是一個個的車間,工廠(進程)由多個車間(線程)組成,
並包含車間(線程)所需的一切資源。工廠(進程)的工作其實就是依賴於車間(線程)的工作。
二、為什么要用多線程
①讓計算機“同時”做多件事情,節約時間
②多線程可以讓一個程序“同時”處理多個事情
③后台運行進程,提高程序的運行效率,也不會使主界面出現無響應的情況
④獲得當前線程和當前進程
三、線程的使用
引入 using System.Threading;
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private Thread th; private void button1_Click(object sender, EventArgs e) { // 線程分為兩種: // 1、前台線程:只有前台線程都關閉才能完成程序關閉(默認屬於前台線程) // 2、后台線程:只要前台線程都結束,后台線程自動結束 // 創建一個線程去執行這個方法 th = new Thread(Test); // 設置后台線程 th.IsBackground = true; // 標記這個線程准備就緒了,可以隨時被執行,具體什么時候執行這個線程由CPU決定 th.Start(); } private void Test() { for (int i = 0; i < 100000; i++) { //Console.WriteLine(i); textBox1.Text = i.ToString(); } } private void Form1_Load(object sender, EventArgs e) { // 取消捕獲對錯誤線程的調用 Control.CheckForIllegalCrossThreadCalls = false; } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { // 當你點擊關閉窗體的時候,判斷新線程是否為null if (th != null) { // 立即結束線程。使用了About就不能再start th.Abort(); } } }
后續會陸續更新其他資料,喜歡請關注哦!