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