Example #1
0
        /// <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);
        }
Example #2
0
 /// <inheritdoc />
 /// <summary>
 /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
 /// </summary>
 public void Dispose()
 {
     MutexManager.Release(this);
     ReleaseLock();
 }