private void DoTimer( TimeSpan delay ) { m_Duration = delay; if ( m_Timer != null ) m_Timer.Stop(); if ( delay == TimeSpan.Zero ) return; m_End = DateTime.Now + delay; m_Timer = new InternalTimer( this, delay ); m_Timer.Start(); }