public void Set(TimeSpan timeFromNow) { if (timeFromNow == TimeSpan.MaxValue) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.Error_IOThreadTimerCannotAcceptTimeSpanMaxVal), "timeFromNow"); } SetAt(Ticks.Add(Ticks.Now, Ticks.FromTimeSpan(timeFromNow))); }
public void Set(TimeSpan timeFromNow) { if (timeFromNow == TimeSpan.MaxValue) { throw new ArgumentException("IOThreadTimer cannot accept Timespan.MaxValue.", "timeFromNow"); } SetAt(Ticks.Add(Ticks.Now, Ticks.FromTimeSpan(timeFromNow))); }
public bool Cancel(IOThreadTimer timer) { lock (ThisLock) { if (timer.index > 0) { TimerGroup timerGroup = timer.timerGroup; TimerQueue timerQueue = timerGroup.TimerQueue; timerQueue.DeleteTimer(timer); if (timerQueue.Count > 0) { UpdateWaitableTimer(timerGroup); } else { TimerGroup otherTimerGroup = GetOtherTimerGroup(timerGroup); if (otherTimerGroup.TimerQueue.Count == 0) { long now = Ticks.Now; long thisGroupRemainingTime = timerGroup.WaitableTimer.DueTime - now; long otherGroupRemainingTime = otherTimerGroup.WaitableTimer.DueTime - now; if (thisGroupRemainingTime > maxTimeToWaitForMoreTimers && otherGroupRemainingTime > maxTimeToWaitForMoreTimers) { timerGroup.WaitableTimer.Set(Ticks.Add(now, maxTimeToWaitForMoreTimers)); } } } return(true); } else { return(false); } } }
public static TimeSpan Add(TimeSpan timeout1, TimeSpan timeout2) { return(Ticks.ToTimeSpan(Ticks.Add(Ticks.FromTimeSpan(timeout1), Ticks.FromTimeSpan(timeout2)))); }
public void Set(int millisecondsFromNow) { SetAt(Ticks.Add(Ticks.Now, Ticks.FromMilliseconds(millisecondsFromNow))); }