Windows 是多工作業系統,透過工作管理員可觀察執行中的程序與進程。進程是執行中程式的實例,包含程式碼、記憶體與系統資源。一個進程由多個執行緒組成,執行緒是程式中的執行流,擁有專屬暫存器(堆疊指標、程式計數器等),但共用程式碼區段。
將進程比作公司,執行緒比作員工:
所有多執行緒相關類別位於 System.Threading 命名空間。核心類別 Thread 提供:
Start():啟動執行緒Sleep(ms):暫停目前執行緒Abort():終止執行緒Suspend()/Resume():暫停/恢復執行緒(已過時,不建議使用)using System;
using System.Threading;
namespace ThreadTest
{
class RunIt
{
[STAThread]
static void Main(string[] args)
{
Thread.CurrentThread.Name = "System Thread";
Console.WriteLine(Thread.CurrentThread.Name + " Status:" + Thread.CurrentThread.ThreadState);
Console.ReadLine();
}
}
}
輸出:System Thread Status:Running
Thread.CurrentThread 為靜態屬性,取得目前執行的執行緒實例。靜態屬性在所有實例間共享,符合「同一時間 CPU 僅執行一個執行緒」的特性。
本系列範例均使用控制台應用程式,並於結尾加入 Console.ReadLine() 暫停輸出,便於觀察執行流程。