在C#中,AutoResetEvent
是一个同步原语,用于在多个线程之间进行通信。它有两个状态:Set
和 Reset
。当 AutoResetEvent
被设置为 Set
状态时,等待的线程将被释放;当它被设置为 Reset
状态时,后续尝试获取事件的线程将被阻塞,直到事件被设置为 Set
状态。
要初始化一个 AutoResetEvent
对象,你可以使用它的静态构造函数创建一个未初始化的实例,或者使用 new
关键字创建一个已初始化的实例。以下是两种初始化方法的示例:
- 未初始化的实例:
AutoResetEvent autoResetEvent = new AutoResetEvent();
- 已初始化的实例(设置为
Set
状态):
AutoResetEvent autoResetEvent = new AutoResetEvent(true);
在这个例子中,我们使用 new AutoResetEvent(true)
创建了一个已初始化的 AutoResetEvent
对象,并将其设置为 Set
状态。这意味着当线程尝试获取此事件时,它们将立即成功,而不会阻塞。