Лучший асинхронный метод

Мне нужно написать некоторый асинхронный код, который по существу пытается многократно общаться и инициализировать базу данных. Довольно часто первая попытка заканчивается неудачей, поэтому необходимо повторить попытку.

В старые времена я бы использовал шаблон, похожий на:

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

Я понимаю, что в .NET недавно было внесено множество изменений в отношении асинхронных шаблонов, поэтому мой вопрос действительно заключается в том, является ли это лучшим методом для использования, или стоит ли изучатьasync вещи, и если да, то как мне реализовать этот шаблон вasync?

Обновить

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

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

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