C# Thread IsAlive 理解

IsAlive的功能就是判斷當前線程是否處於活動狀態。spa

    public class Program
    {
        public static void Main(string[] args)
        {
            try
            {
                WriteNumber writenumber = new WriteNumber();
                Thread t1 = new Thread(new ThreadStart(writenumber.WriteString));
                Console.WriteLine("begin:" + t1.IsAlive);
                t1.Name = "000";
                t1.Start();
                Console.WriteLine("end:" + t1.IsAlive);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.ReadLine();
        }
    }

    public class WriteNumber
    {
        /// <summary>
        /// 類方法
        /// </summary>
        public void WriteString()
        {
            Console.WriteLine("WriteString:" + Thread.CurrentThread.IsAlive);
        }
    }

 

輸出結果:線程

 

結論:線程處於正在運行或準備開始運行的狀態,線程就是處於活動狀態的。 在沒有調用Start時, 線程只做了定義, 仍是處於沒活動的狀態。code

 

最後值得討論的是end這段代碼的線程活動狀態,雖然上面打印出來是True, 但此值是不肯定的, 有可能此次運行時, t1線程還沒執行完畢, 若是在這句代碼前加Thread.Sleep(1000), 讓main線程執行, 一秒鐘後t1線程早已經執行完畢很久, 這時end這段代碼輸出爲False。blog

相關文章
相關標籤/搜索