目的:控制线程数量执行某些代码、避免蜂拥进入 的异步执行导致系统 崩溃。
使用:
1.
Semaphore Semaphore = new
Semaphore(3, 3); // 控制线程数
2.
public void StatisticsDate(object store){
Semaphore.WaitOne();//进入线程池控制数
//要执行的代码
Semaphore.Release();//结束当前线程池控制
}
3.这样线程进入StatisticsDate的方法就会 按照规定的数量一一执行。
4.需要 静态类处理Semaphore,方便全局控制。
5.Semaphore超时处理
if (Semaphore.WaitOne(1000)) { // 未超时处理单位毫秒 } else { // 等待超时处理 }