Najlepsza metoda asynchroniczna podczas

Muszę napisać jakiś asynchroniczny kod, który zasadniczo próbuje wielokrotnie rozmawiać i inicjować bazę danych. Dosyć często pierwsza próba nie powiedzie się, dlatego wymagane jest ponowienie próby.

W dawnych czasach używałbym wzoru podobnego do:

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

Zdaję sobie sprawę, że ostatnio wprowadzono wiele zmian do .NET w odniesieniu do wzorców asynchronicznych, więc moje pytanie naprawdę jest najlepszą metodą do użycia lub czy warto odkrywaćasync rzeczy, a jeśli tak, jak mam zaimplementować ten wzórasync?

Aktualizacja

Aby wyjaśnić, chcę odrodzić to zadanie asynchronicznie, tak aby metoda, która się odradza, nie musiała czekać, aż zakończy się, ponieważ zostanie utworzona w konstruktorze usługi, więc konstruktor musi natychmiast powrócić.

questionAnswers(4)

yourAnswerToTheQuestion