System.Threading.Thread 類別提供 IsAlive 屬性,回傳 true 表示執行緒已啟動且尚未正常終止或被中止。
Thread worker = new Thread(DoWork);
worker.Start();
if (worker.IsAlive) {
// 執行緒正在執行中
Console.WriteLine("執行緒運作中...");
} else {
Console.WriteLine("執行緒已結束或未啟動。");
}
// 執行緒方法
void DoWork() {
Thread.Sleep(5000); // 模擬長時間工作
}
IsAlive 為 true 不代表執行緒正在積極執行程式碼,可能處於 Sleep、Wait、Join 等阻塞狀態。Abort() 後,IsAlive 變為 false。Thread.ThreadState 屬性(位旗標組合)。Thread t = new Thread(() => Thread.Sleep(1000));
Console.WriteLine(t.ThreadState); // Unstarted
t.Start();
Console.WriteLine(t.ThreadState); // Running 或 Background | Running
t.Join();
Console.WriteLine(t.ThreadState); // Stopped