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ć.