我有一个线程正在等待一个EventWaitHandle(自动重置事件):
AutoResetEvent.WaitOne();
我有另一个线程在发信号让第一个线程继续执行。
AutoResetEvent.Set();
AutoResetEvent.Close();
在调用.Set之后直接调用.Close是否安全,换句话说,在销毁AutoResetEvent之前等待的线程是否已经继续执行是有保证的吗?
Close
的文档中写道:“一旦调用此方法,对当前实例的引用将导致未定义的行为。”无论是新引用还是现有引用(例如您对WaitOne
的调用),都没有明确说明。但我不想尝试它...为什么不由等待方关闭/处理它呢? - James Thorpe