2013-01-17 16 views

回答

0

这将导致AbandonedMutexException。使用此课程的正确方法不是在服务员处于活动状态时致电关闭。

参见http://msdn.microsoft.com/en-us/library/58195swd.aspx

+0

因此,如果我有线程正在等待,并且我想因某种原因而终止,那么唤醒线程的最佳方式是什么?如果我使用set,它只会唤醒ONE ... – Andrew

+0

该异常对于Mutex类非常具体。当拥有互斥锁的线程终止而未释放互斥锁时引发。 –

+0

@HansPassant我实际上查看了它 - 它也适用于EventWaitHandle类。 – usr

1

号这将导致的WaitOne()方法失败,异常,的ObjectDisposedException尤其如此。

唯一的“最好的办法”就是不要这样做,这是一个普通的错误。 EventWaitHandle对象只能在不再使用时关闭或处理。

+0

我想我会用'Monitor.Wait'和'Monitor.PulseAll'路线去...... – Andrew