|
其中的WaitOne为等待方法,一直等到Mutex 被释放为止。初始的情况下,Mutex 对象是处于释放状态的,而一旦执行了WaitOne方法之后,它 就被捕获了,一直到被调用了ReleaseMutex方法之后才被释放。 所以要在独占代码段里面处理好异常。例如下面这样的代码就是错误的: public void Add(int n) 上面的代码一旦在try和catch里面发生了异常,那么Mutex就不能被释放,后面的程序就会卡死在WaitOne()一行,而应该改成这样: public void Add(int n) 现在谈一下第二种: 上面这两个类都是由EventWaitHandle类派生出来的,所以功能和调用方法都很相似。 但问题是你不知道花什么时候才送到MM的手里,打早了打迟了都不好,这时你可以使用ManualResetEvent对象帮忙。当委 托小伙子送花过去的时候,使用ManualResetEvent的WaitOne方法进行等待。当小伙子把花送到MM的手中时,再调用一下 ManualResetEvent的Set方法,你就可以准时地打电话过去了。 |