Beste asynchrone while-Methode

Ich muss einen asynchronen Code schreiben, der im Wesentlichen versucht, wiederholt mit einer Datenbank zu kommunizieren und diese zu initialisieren. Sehr oft schlägt der erste Versuch fehl, daher muss er es erneut versuchen.

In früheren Zeiten hätte ich ein Muster ähnlich dem folgenden verwendet:

void WaitForItToWork()
{
    bool succeeded = false;
    while (!succeeded)
    {
        // do work
        succeeded = outcome; // if it worked, mark as succeeded, else retry
        Threading.Thread.Sleep(1000); // arbitrary sleep
    }
}

Ich stelle fest, dass in letzter Zeit viele Änderungen an .NET in Bezug auf asynchrone Muster vorgenommen wurden. Meine Frage ist also, ob dies die beste Methode ist oder ob es sich lohnt, die zu untersuchenasync Sachen und wenn ja, wie implementiere ich dieses Muster inasync?

Aktualisieren

Zur Verdeutlichung möchte ich diese Arbeit asynchron erzeugen, damit die Methode, die sie erzeugt, nicht warten muss, bis sie beendet ist, da sie im Konstruktor eines Dienstes erzeugt wird, sodass der Konstruktor sofort zurückkehren muss.