了解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
本文详细介绍了C#中的AutoResetEvent,包括其信号和非信号状态的切换。通过示例展示了线程如何在WaitOne()调用时被阻塞和释放,以及Set()方法如何改变事件状态并唤醒等待的线程。
最低0.47元/天 解锁文章
6550

被折叠的 条评论
为什么被折叠?



