在C#中,Semaphore是一種用于控制同時訪問資源的同步機制。Semaphore允許指定多個線程同時訪問臨界區域,而不是像Mutex那樣只允許一個線程訪問。
Semaphore的使用方法如下:
Semaphore semaphore = new Semaphore(initialCount, maximumCount);
semaphore.WaitOne();
// 訪問共享資源的代碼
// 完成訪問共享資源的代碼
semaphore.Release();
semaphore.Dispose();
通過使用Semaphore,可以有效地控制并發訪問共享資源的線程數量,避免競爭條件和死鎖的發生。