【发布时间】:2015-11-23 10:55:15
【问题描述】:
我有一个线程正在等待 EventWaitHandle (AutoResetEvent):
AutoResetEvent.WaitOne();
我有另一个线程指示第一个线程继续
AutoResetEvent.Set();
AutoResetEvent.Close();
在.Set之后直接调用.Close是否安全,也就是说在AutoResetEvent被释放之前,是否保证等待线程已经继续?
【问题讨论】:
-
docs for
Close说:“一旦调用此方法,对当前实例的引用将导致未定义的行为。” 无论是对它的新引用,还是对现有实例的引用,例如因为您对WaitOne的电话没有得到澄清。但我不想尝试...为什么不从等待的人那里关闭/处理它? -
因为等待是可选的,所以如果等待没有完成,它就不会被释放......
标签: c# multithreading waithandle event-wait-handle