Сообщение Re: Аццкий ад и асинхронная асинхронность от 12.11.2016 8:57
Изменено 30.11.2016 9:57 Sinix
Здравствуйте, Artem Korneev, Вы писали:
AK>Хочется всё это переписать к более понятному виду.
Использовать await в каждом методе по цепочке вызовов абсолютно необязательно.
А если бы товарищ автор Polly читал бы гадлайны, то код выглядел бы как
я бы на вашем месте завёл бы issue на это дело.
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 на это дело.
Re: Аццкий ад и асинхронная асинхронность
Здравствуйте, Artem Korneev, Вы писали:
AK>Хочется всё это переписать к более понятному виду.
Использовать await в каждом методе по цепочке вызовов абсолютно необязательно.
А если бы товарищ автор Polly читал бы гадлайны, то код выглядел бы как
я бы на вашем месте завёл бы issue на это дело.
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 на это дело.