/// <summary> /// Initializes a new instance of the <see cref="Mutex" /> class. /// </summary> /// <param name="name">The name.</param> /// <param name="lockObject">The lock object.</param> internal Mutex(string name, object lockObject) { State = MutexState.Waiting; LockObject = lockObject; Name = name; Timestamp = DateTime.UtcNow; ThreadId = Thread.CurrentThread.ManagedThreadId; AcquireLock(); MutexManager.Register(this); }
/// <inheritdoc /> /// <summary> /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// </summary> public void Dispose() { MutexManager.Release(this); ReleaseLock(); }