ManualResetEvent是一种同步原语,它允许一个或多个线程在另一个线程完成特定任务之前等待。它有两种状态:非终止和终止。当它处于非终止状态时,所有等待的线程都将被阻止;而当它处于终止状态时,所有等待的线程都将被释放。
1. 创建:使用ManualResetEvent类的构造函数来创建一个新的ManualResetEvent对象,并传入一个布尔值来指定它的初始状态。
例如:
ManualResetEvent mre = new ManualResetEvent(false); // false表示初始状态为非终止
2. 等待:使用WaitOne()方法来等待ManualResetEvent对象的状态变为终止状态。
例如:
mre.WaitOne();
3. 设置:使用Set()方法来将ManualResetEvent对象的状态设置为终止状态,以释放所有等待的线程。
例如:
mre.Set();
4. 重置:使用Reset()方法来将ManualResetEvent对象的状态重置为非终止状态,以阻止所有等待的线程。
例如:
mre.Reset();
标签:
评论列表 (0)