¿Es necesario disponer de System.Timers.Timer si usa uno en su aplicación?

Estoy usando la clase System.Timers.Timer en una de las clases de mi aplicación. Sé que la clase Timer tiene el método Dispose heredado de la clase Component principal que implementa la interfaz IDisposable. Las instancias de la siguiente clase se crean muchas veces durante el ciclo de vida de mi aplicación; cada uno de ellos tiene una instancia de la clase Timer que genera eventos transcurridos continuamente durante el ciclo de vida de la clase. ¿Debo implementar la interfaz IDisposable en la clase que usa la clase Timer para disponer el objeto timer? (He visto un código que no hace esto en absoluto). Me temo que algunos recursos no administrados no se liberarán si uso la siguiente clase de esta manera:

SomeClass someClass = new SomeClass();
someClass.DoSomething();
someClass = null;

La clase:

using System.Timers;

public class SomeClass
{
    private Timer m_timer;

    public SomeClass()
    {           
        m_timer = new Timer();
        m_timer.Interval = 1000;
        m_timer.Elapsed += new ElapsedEventHandler(m_timer_Elapsed);
        m_timer.AutoReset = false;
        m_timer.Start();                       
    }

    public void DoSomething()
    {

    }

    private void m_timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        try
        {
            //Do some task
        }
        catch (Exception ex)
        {
            //Ignore
        }
        finally
        {
            if (m_timer != null)
            {
                //Restart the timer
                m_timer.Enabled = true;
            }
        }
    }
}

Respuestas a la pregunta(7)

Su respuesta a la pregunta