有一个线程用来处理某种逻辑,现在需要实现信号量分支控制:
1.外部有两种信号,一种执行,一种关闭,线程接收到执行信号时,就执行逻辑处理,接收到关闭信号时就结束线程的执行
2.执行信号用了Semaphore来做,因为有一个数量的控制,最大只能允许同时存在N个执行请求,超出这个数量的请求会被拒绝
求大家给点思路,线程中目前是
while (_semaphore.WaitOne()){ ... }
来控制,但我想增加一个退出的信号量,不知道如何处理
------解决思路----------------------
这个类可以添加添加一个 bool变量,例如 isStop;
public void Stop()
{
this.isStop=true;
_semaphore.Release();
}
循环的代码
while (_semaphore.WaitOne()){
if(this.isStop)
{
break;
}
//执行任务
}