public void StartDelayTimer(Action action, TimeSpan delay) { startTime = Environment.TickCount; // stop any previous timer and start over. StopDelayTimer(); this.delayedAction = action; this.delayTimer = new System.Threading.Timer(OnDelayTimerTick, null, (int)delay.TotalMilliseconds, System.Threading.Timeout.Infinite); }