两者有什么区别?如果我在关闭应用程序时执行Mutex.Close()
而不是Mutex.Release()
,会有什么副作用?
最佳答案
ReleaseMutex用于允许另一个线程获取互斥量。仅当您已获取互斥锁(称为WaitOne
并已获取或通过构造函数获取)时,才应调用它。重要说明如果您没有获得互斥锁,ReleaseMutex
将引发异常。
Close用于通过声明互斥对象来清理已分配的资源,无论您是否阻塞过该对象,如果已获取该互斥对象,它将释放它(等效于调用ReleaseMutex
。如果您计划锁定整个应用程序的互斥锁(即使用它来确保应用程序的单个实例),那么我会将其包装在using语句中,例如Joseph Albahari's线程指南中的示例(必须阅读)。
关于.net - .NET Mutex.ReleaseMutex和Mutex.Close,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7519465/