我們習慣在一個單獨的線程中額外執行一些耗時,或者執行一些可能妨礙其他任務的任務的操作,通過多個線程的合理運用,讓客戶端得到更為快速的響應方式。通過利用單獨的線程去執行 CPU 密集型和 IO 密集型的工作,讓用戶界面一直處於活躍狀態。當然,任何事物都具有兩面性,處理不當的話會誘發線程安全的問題。 創 ...
我們習慣在一個單獨的線程中額外執行一些耗時,或者執行一些可能妨礙其他任務的任務的操作,通過多個線程的合理運用,讓客戶端得到更為快速的響應方式。通過利用單獨的線程去執行 CPU 密集型和 IO 密集型的工作,讓用戶界面一直處於活躍狀態。當然,任何事物都具有兩面性,處理不當的話會誘發線程安全的問題。
創建與使用線程
我們常使用 new 關鍵字對線程實現創建,下麵是一些常見的線程方法。
//創建線程 var thread = new Thread(() => Console.WriteLine()); //啟動 thread.Start(); //終止 thread.Abort(); #region 方法已過時 //掛起 thread.Suspend(); //恢復掛起的線程 thread.Resume(); #endregion 方法已過時
線程屬性
一些常見的屬性。
//線程優先順序 //thread.Priority //線程的狀態 //thread.ThreadState //線程的執行狀態 //thread.IsAlive //是否後臺線程 //thread.IsBackground //線程名稱 //thread.Name
線程的優先順序
CPU 會向優先順序高的線程分配更長的時間段。
後臺線程
後臺線程會在最後一個前臺線程停止後立即停止。
【參考】https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/threading/multithreaded-applications