1. 程式人生 > 其它 >多執行緒專題之4-Tread後臺執行緒和前臺執行緒

多執行緒專題之4-Tread後臺執行緒和前臺執行緒

前臺執行緒

程式強制關掉後,執行緒也隨之消失了,不會往後執行

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();
        }
    }