C# Thread IsAlive 理解


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

    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時, 線程只作了定義, 還是處於沒活動的狀態。

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM