AutoResetEvent
是.net线程简易同步方法中的一种。AutoResetEvent
常常被用来在两个线程之间进行信号发送
两个线程共享相同的AutoResetEvent对象,线程可以通过调用AutoResetEvent对象的WaitOne()
方法进入等待状态,然后另外一个线程通过调用AutoResetEvent对象的Set()
方法取消等待的状态。
AutoResetEvent如何工作的?
在内存中保持着一个bool值,如果bool值为False,则使线程阻塞,反之,如果bool值为True,则使线程退出阻塞。当我们创建AutoResetEvent对象的实例时,我们在函数构造中传递默认的bool值,以下是实例化AutoResetEvent的例子。
AutoResetEvent autoResetEvent = new AutoResetEvent(false);
WaitOne 方法
该方法阻止当前线程继续执行,并使线程进入等待状态以获取其他线程发送的信号。WaitOne
将当前线程置于一个休眠的线程状态。WaitOne
方法收到信号后将返回True,否则将返回False。
autoResetEvent.WaitOne();
WaitOne
方法的第二个重载版本是等待指定的秒数。如果在指定的秒数后,没有收到任何信号,那么后续代码将继续执行。
static void ThreadMethod()