C# Выборка данных из внешнего источника с использованием бесконечного l oop для нескольких попыток - PullRequest
0 голосов
/ 14 апреля 2020

Мое приложение использует 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();
            }
        } 
    }
}

Я действительно не понимаю не похож на бесконечные циклы (никогда не использовал их много лет назад), но похоже, что нет другого способа реализовать это.

Достаточно ли этого или это можно сделать лучше?

1 Ответ

1 голос
/ 14 апреля 2020

Обычно можно повторить операцию в al oop, если есть некоторые критерии выхода. Либо, когда операция завершается успешно, или оператор решает прекратить операцию или приложение. В любом случае это не действительно бесконечный l oop.

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