Thread.Interrupt для остановки долгого сна при выключении приложения - есть ли лучший подход

У меня небольшой фоновый поток, который работает в течение всего времени жизни приложения, однако, когда приложение закрывается, поток должен корректно завершиться.

Проблема в том, что поток запускает некоторый код с интервалом в 15 минут - это означает, что он спит ALOT.

Теперь, чтобы вывести его из спящего режима, я добавляю к нему прерывание - однако мой вопрос, если есть лучший подход к этому, поскольку прерывания генерируют исключение ThreadInterruptedException.

Вот суть моего кода (несколько псевдо):

public class BackgroundUpdater : IDisposable
{
    private Thread myThread;
    private const int intervalTime = 900000; // 15 minutes
    public void Dispose()
    {
        myThread.Interrupt();
    }

    public void Start()
    {
        myThread = new Thread(ThreadedWork);
        myThread.IsBackground = true; // To ensure against app waiting for thread to exit
        myThread.Priority = ThreadPriority.BelowNormal;
        myThread.Start();
    }

    private void ThreadedWork()
    {
        try
        {
            while (true)
            {
                Thread.Sleep(900000); // 15 minutes
                DoWork();
            }
        }
        catch (ThreadInterruptedException)
        {
        }
    }
}

Ответы на вопрос(5)

Ваш ответ на вопрос