/// <summary> /// Lock session /// </summary> /// <param name="session">VISA session to lock</param> /// <param name="lockResource">Use VISA resource lock if true</param> public SessionLocker(IMessageSession session, bool lockResource = false) { this.session = session; this.lockResource = lockResource; var nestedLock = Monitor.IsEntered(session); Monitor.Enter(session); if (lockResource && !nestedLock) { session.LockResource(); } }