Re: Аццкий ад и асинхронная асинхронность
От: Sinix  
Дата: 12.11.16 08:57
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>Хочется всё это переписать к более понятному виду.


Использовать await в каждом методе по цепочке вызовов абсолютно необязательно.

public async Task InvokeHttpCall(Func<HttpClient, Task<HttpResponseMessage>> callback)
{
    using (var httpClient = new HttpClient())
    {
        HttpResponseMessage response = null;
        var http = httpClient;

        await this.retryPolicy.ExecuteAndCaptureAsync(() => 
                callback.Invoke(http).ContinueWith(t => response = t.Result));
    }
}


А если бы товарищ автор Polly читал бы гадлайны, то код выглядел бы как
        response = (await this.retryPolicy.ExecuteAndCaptureAsync(() => callback.Invoke(http))).Result;

я бы на вашем месте завёл бы issue на это дело.
Отредактировано 30.11.2016 9:57 Sinix . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.