Example #1
0
        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);
            }
        }
Example #2
0
 public static bool TryOpenExisting(string name, MutexRights rights, out Mutex result)
 {
     return(Mutex.OpenExistingWorker(name, rights, out result) == WaitHandle.OpenExistingResult.Success);
 }
Example #3
0
 public static bool TryOpenExisting(string name, out Mutex result)
 {
     return(Mutex.OpenExistingWorker(name, MutexRights.Modify | MutexRights.Synchronize, out result) == WaitHandle.OpenExistingResult.Success);
 }