首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 多執行緒機制探索(二):Thread 類別核心 API 與第一個執行緒程式

     編輯:關於C語言

第一支執行緒程式


// SystemThread.cs
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 僅執行其中一個。
  • 命名空間 System.Threading 包含所有多執行緒相關型別。

Thread 類別核心方法

建立與啟動執行緒標準模式


Thread t = new Thread(() => {
    // 執行緒工作本體
    Console.WriteLine("Worker running on thread {0}", Thread.CurrentThread.ManagedThreadId);
});
t.Name = "MyWorker";
t.IsBackground = true; // 視需求設定
t.Start();

常見陷阱

  1. 忘記呼叫 Start() → 執行緒永遠 Unstarted。
  2. 在迴圈中 new Thread 卻未啟動 → 資源浪費。
  3. 使用 Suspend/Resume 導致死結 → 改用 Monitor/lock/Semaphore 同步。
  4. Abort() 釋放非受控資源不完全 → 實作 IDisposable + finally 確保釋放。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
方法說明備註
Start()啟動執行緒,進入可執行狀態僅能呼叫一次
Sleep(ms)靜態方法,暫停目前執行緒指定毫秒釋放 CPU 時間片
Abort()請求終止執行緒,擲 ThreadAbortExceptionfinally 仍會執行
Suspend()掛起執行緒 (已過時)易死結,勿用
Resume()恢復掛起執行緒 (已過時)配合 Suspend,勿用
Join()等待執行緒結束可設定逾時
Interrupt()喚醒 WaitSleepJoin 狀態執行緒擲 ThreadInterruptedException