Мое приложение использует MongoDB, и мне нужно подключиться к серверу и получить некоторые важные данные при запуске приложения. Если попытка подключения не удалась, мне нужно спросить пользователя, хочет ли он повторить попытку или закрыть приложение.
До сих пор я использовал следующее решение:
public async Task LoadCriticalData()
{
bool IsBusy = true;
CancellationTokenSource Source = new CancellationTokenSource();
CancellationToken Token = Source.Token;
while (!Token.IsCancellationRequested)
{
try
{
await FetchCriticalData();
IsBusy = false;
Source.Cancel();
}
catch (Exception E)
{
bool Retry = RequestUserInteraction();
if (!Retry)
{
Source.Cancel();
CloseApplication();
}
}
}
}
Я действительно не понимаю не похож на бесконечные циклы (никогда не использовал их много лет назад), но похоже, что нет другого способа реализовать это.
Достаточно ли этого или это можно сделать лучше?