了解AutoResetEvent,需要知道两个状态,信号状态和非信号状态。
1,AutoResetEvent(true)为信号状态,并不会阻塞线程,但是遇到 WaitOne(),转换为非信号状态。
2,AutoResetEvent(false)为非信号状态,遇到WaitOne()阻塞线程,等待Set,Set后转换为信号状态,释放线程。
public class Program
{
private static AutoResetEvent event_1 = new AutoResetEvent(true);
private static AutoResetEvent event_2 = new AutoResetEvent(false);
static void Main(string[] args)
{
Console.WriteLine("Press Enter to create three threads and start them.\r\n" +
"The threads wait on AutoResetEvent #1, which was created\r\n" +
"in the signaled state, so the first thread is released.\r\n" +
"This puts AutoResetEvent #1 into the unsignaled state.");
Conso