コード例 #1
0
        public override void ExecuteBefore()
        {
            var lockTaken = false;

            var timeout = TimeSpan.FromMilliseconds(0.0);

            if (GetParameter(1) is int)
            {
                timeout = TimeSpan.FromMilliseconds((int)GetParameter(1));
            }

            if (GetParameter(1) is TimeSpan)
            {
                timeout = (TimeSpan)GetParameter(1);
            }

            MonitorEnhancements.TryEnter(GetParameter(0), timeout, ref lockTaken);

            if (GetParameter(1) is bool)
            {
                ModifyParameter(1, lockTaken);
            }

            Result = lockTaken;
        }
コード例 #2
0
        public override void ExecuteBefore()
        {
            var lockTaken = false;

            MonitorEnhancements.TryEnter(GetParameter(0), TimeSpan.FromMilliseconds(0.0), ref lockTaken);
            Result = lockTaken;
        }
コード例 #3
0
        public override void ExecuteBefore()
        {
            var lockTaken = false;

            MonitorEnhancements.Enter(GetParameter(0), ref lockTaken);
            ModifyParameter(1, lockTaken);
        }
コード例 #4
0
        public MonitorWrapper(object lockObject)
        {
            _lockObject = lockObject;

            var lockTaken = false;

            MonitorEnhancements.Enter(lockObject, ref lockTaken);
        }
コード例 #5
0
 protected virtual void Dispose(bool disposing)
 {
     if (!disposed)
     {
         if (disposing)
         {
             MonitorEnhancements.Exit(_lockObject);
         }
     }
 }
コード例 #6
0
 public override void ExecuteBefore()
 {
     MonitorEnhancements.Exit(GetParameter(0));
 }