public override void Dispose() { if (m_Timer != null) { m_Timer.Stop(); m_Timer.Dispose(); m_Timer = null; } if (m_BGThread != null && m_BGThread.IsAlive) { m_BGThread.Abort(); } base.Dispose(); }