Re[2]: Аццкий ад и асинхронная асинхронность
От: alexander_r  
Дата: 12.11.16 09:55
Оценка: +1
Здравствуйте, Sinix, Вы писали:


S>Здравствуйте, Artem Korneev, Вы писали:


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


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


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

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


S>А если бы товарищ автор Polly читал бы гадлайны, то код выглядел бы как

S>
S>        response = await this.retryPolicy.ExecuteAndCaptureAsync(() => callback.Invoke(http)).Result;
S>

S>я бы на вашем месте завёл бы issue на это дело.

callback.Invoke(http) <- зачем Invoke ???

response = await this.retryPolicy.ExecuteAndCaptureAsync(() => callback(http)).Result;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.