/// <summary> /// Новый Mutex /// </summary> /// <param name="name">Уникальное имя для межпроцессной синхронизации</param> public MutexLocker(string name) { State = MutexState.None; Name = name; m_mutex = new Mutex(requestInitialOwnership, name, out mutexWasCreated); }
/// <summary> /// Освобождение блокировки Mutex'a /// </summary> public void Dispose() { if (m_mutex != null) { try { m_mutex.ReleaseMutex(); //разблокировка текущего потока State = MutexState.Relised; m_mutex.Close(); m_mutex = null; } catch (Exception ex) { Log.WindowsLoger.LogError("ECR", "Возникло исключение при освобождении Mutex'a", ex, new Log.LogParameter("Имя", Name)); } } }