public static Mutex OpenExisting(string name, MutexRights rights) { Mutex result; switch (Mutex.OpenExistingWorker(name, rights, out result)) { case WaitHandle.OpenExistingResult.NameNotFound: throw new WaitHandleCannotBeOpenedException(); case WaitHandle.OpenExistingResult.PathNotFound: __Error.WinIOError(3, name); return(result); case WaitHandle.OpenExistingResult.NameInvalid: throw new WaitHandleCannotBeOpenedException(Environment.GetResourceString("Threading.WaitHandleCannotBeOpenedException_InvalidHandle", (object)name)); default: return(result); } }
public static bool TryOpenExisting(string name, MutexRights rights, out Mutex result) { return(Mutex.OpenExistingWorker(name, rights, out result) == WaitHandle.OpenExistingResult.Success); }
public static bool TryOpenExisting(string name, out Mutex result) { return(Mutex.OpenExistingWorker(name, MutexRights.Modify | MutexRights.Synchronize, out result) == WaitHandle.OpenExistingResult.Success); }