多執行緒專題之4-Tread後臺執行緒和前臺執行緒
阿新 • • 發佈:2021-08-09
前臺執行緒
程式強制關掉後,執行緒也隨之消失了,不會往後執行
thead.IsBackground = true;
後臺執行緒
程式強制關掉後,執行緒不會立刻消失了,執行完後再消失
thead.IsBackground = false;
public static void DoSomethingNoParam() { Console.WriteLine($"DoSomethingNoParam函式開始執行,執行緒ID:{Thread.CurrentThread.ManagedThreadId.ToString("00")}"); Thread.Sleep(5000); Console.WriteLine("DoSomethingNoParam"); Console.WriteLine($"DoSomethingNoParam函式結束執行,執行緒ID:{Thread.CurrentThread.ManagedThreadId.ToString("00")}"); } public static void DoSomething(object name) { Debug.WriteLine($"DoSomething函式開始執行,執行緒ID:{Thread.CurrentThread.ManagedThreadId.ToString("00")}"); Thread.Sleep(5000); Debug.WriteLine($"DoSomething Param = {name}"); Debug.WriteLine($"DoSomething函式結束執行,執行緒ID:{Thread.CurrentThread.ManagedThreadId.ToString("00")}"); } public static void ThreadTest() { Debug.WriteLine($"主執行緒開始執行,執行緒ID:{Thread.CurrentThread.ManagedThreadId.ToString("00")}"); ParameterizedThreadStart parameterizedThreadStart = new ParameterizedThreadStart(DoSomething); Thread thead = new Thread(parameterizedThreadStart); thead.IsBackground = true;//後臺執行緒,強制關掉,執行緒也消失了;前臺執行緒:強制關掉, thead.Start("hjl"); Debug.WriteLine($"主執行緒結束執行,執行緒ID:{Thread.CurrentThread.ManagedThreadId.ToString("00")}"); Console.ReadKey(); } }