以前专门测试过,但长时间不用又全部忘记了,再写一个:
1. AutoResetEvent类
AutoResetEvent a = new AutoResetEvent(false); //false表示初始无信号
bool b1= a.Set(); //给信号
bool b2 = a.Reset(); //不给信号
bool b =a.WaitOne(); //等待信号,函数可以加个超时时长
AutoResetEvent.WaitAll(new WaitHandle[] { a }); //等待全部都有信号
AutoResetEvent.WaitAny(new WaitHandle[] { a }); //等待任一个有信号
2. Semaphore类
信号量,可以有多个信号,前面AutoResetEvent只有一个信号
Semaphorem= new Semaphore(0, MaxSize);
m.Release(); //释放一个信号
m.WaitOne(); //等待一个信号
参考:https://www.cnblogs.com/zhan520g/p/11388591.html