Thread.Interrupt, um langen Schlaf beim Herunterfahren der App zu stoppen - Gibt es einen besseren Ansatz?

Ich habe einen kleinen Hintergrund-Thread, der für die Lebensdauer der Anwendung ausgeführt wird. Wenn die Anwendung jedoch heruntergefahren wird, sollte der Thread ordnungsgemäß beendet werden.

Das Problem ist, dass der Thread Code in einem Intervall von 15 Minuten ausführt - was bedeutet, dass er VIEL schläft.

Um den Schlaf zu beenden, stelle ich einen Interrupt. Meine Frage ist jedoch, ob es einen besseren Ansatz dafür gibt, da Interrupts ThreadInterruptedException generieren.

Hier ist der Kern meines Codes (etwas pseudo):

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)
        {
        }
    }
}

Antworten auf die Frage(5)

Ihre Antwort auf die Frage