/// <summary> /// Try to get the locked resource. This thread will block (potentially forever) /// until the resource is obtained or an exception is thrown. /// </summary> /// <returns>The locked resource</returns> /// <exception cref="ObjectDisposedException">object was disposed</exception> /// <exception cref="LockAlreadyHeldThreadException">the thread attempting to obtain the lock, /// already holds the lock.</exception> protected MonitorLockedResource ExecuteGetInternalLockedResourceBlockForever() { ThrowIfDisposingOrDisposed(); return(MonitorLockedResource.CreateInternalLockedResourceBlockForever(this)); }