Melhor método assíncrono
Eu preciso escrever algum código assíncrono que essencialmente tenta falar repetidamente e inicializar um banco de dados. Muitas vezes a primeira tentativa falhará, portanto, o requisito para que ela tente novamente.
Nos velhos tempos eu teria usado um padrão semelhante a:
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
}
}
Eu percebi que muitas mudanças foram feitas recentemente no .NET com relação a padrões assíncronos, então minha pergunta é realmente esse o melhor método para usar ou vale a pena explorarasync
coisas e se assim for como eu implementar esse padrão emasync
?
Atualizar
Só para esclarecer, eu quero gerar este trabalho de forma assíncrona para que o método que o gera não precise esperar que ele termine, pois ele será gerado no construtor de um serviço, portanto, o construtor deve retornar instantaneamente.