Object->
MarshalByRefObject->
WaitHandle->
Semaphore
1.作用:
多線程環境下,可以控制線程的並發數量來限制對資源的訪問
2.舉例:
Semaphore可以決定並發的數量,WaitOne會等待當前的一條並發完成,才允許另一條並發的開啟,Release會釋放並發,並可以指定並發數量
3.常用方法:
(1) 初始化 System.Threading.Semaphore 類的新實例,並指定初始入口數和最大並發入口數。
public Semaphore(int initialCount, int maximumCount);
(2) 阻止當前線程,直到當前 System.Threading.WaitHandle 收到信號。
public virtual bool WaitOne();
(3)退出信號量並返回前一個計數。
public int Release();
參考:
https://docs.microsoft.com/en-us/dotnet/api/system.threading.semaphore?view=netframework-4.7.2