internal override TimerThread.Timer CreateTimer(TimerThread.Callback callback, object context) { TimerThread.TimerNode node = new TimerThread.TimerNode(callback, context, base.Duration, this.m_Timers); bool flag = false; lock (this.m_Timers) { if (this.m_Timers.Next == this.m_Timers) { flag = true; } node.Next = this.m_Timers; node.Prev = this.m_Timers.Prev; this.m_Timers.Prev.Next = node; this.m_Timers.Prev = node; } if (flag) { TimerThread.Prod(); } return node; }
internal override TimerThread.Timer CreateTimer(TimerThread.Callback callback, object context) { return new TimerThread.InfiniteTimer(); }
internal TimerNode(TimerThread.Callback callback, object context, int durationMilliseconds, object queueLock) : base(durationMilliseconds) { if (callback != null) { this.m_Callback = callback; this.m_Context = context; } this.m_TimerState = TimerState.Ready; this.m_QueueLock = queueLock; }
internal abstract TimerThread.Timer CreateTimer(TimerThread.Callback callback, object context);