Ausführen einer Funktion in regelmäßigen Abständen, nachdem die Funktion ihre Aufgabe abgeschlossen hat

Ich baue eine Windows Store App mit C # und xaml. Ich muss die Daten nach einem bestimmten Zeitraum aktualisieren (bringen Sie die neuen Daten vom Server). Ich habe ThreadPoolTimer verwendet, um meine Aktualisierungsfunktion in regelmäßigen Abständen wie folgt auszuführen:

   TimeSpan period = TimeSpan.FromMinutes(15); 
   ThreadPoolTimer PeriodicTimer =  ThreadPoolTimer.CreatePeriodicTimer(async(source)=> {  
   n++; 
   Debug.WriteLine("hello" + n);
   await dp.RefreshAsync(); //Function to refresh the data
   await Dispatcher.RunAsync(CoreDispatcherPriority.High,
                () =>
                {
                    bv.Text = "timer thread" + n;

                });

        }, period);

Das funktioniert einwandfrei. Das einzige Problem besteht darin, dass die Aktualisierung erst abgeschlossen wird, wenn die nächste Instanz an den Thread-Pool übergeben wird. Gibt es eine Möglichkeit, die Lücke zwischen seiner Ausführung anzugeben.

Schritt 1: Aktualisierungsfunktion wird ausgeführt (dauert beliebig lange)

Schritt 2: Die Aktualisierungsfunktion schließt die Ausführung ab

Schritt 3: Pause für 15 Minuten, dann weiter mit Schritt 1

Refresh-Funktion wird ausgeführt. 15 Minuten nach Beendigung der Ausführung wird sie erneut ausgeführt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage