public void StopDelayTimer()
{
System.Threading.Timer timer = this.delayTimer;
System.Threading.Interlocked.CompareExchange(ref this.delayTimer, null, timer);
if (timer != null)
{
// give up on this old one and start over.
timer.Dispose();
timer = null;
}
delayedAction = null;
}