У меня есть метод ниже:
public string RetrieveHolidayDatesFromSource() {
var result = this.RetrieveHolidayDatesFromSourceAsync();
/** Do stuff **/
var returnedResult = this.TransformResults(result.Result); /** Where result gets used **/
return returnedResult;
}
private async Task<string> RetrieveHolidayDatesFromSourceAsync() {
using (var httpClient = new HttpClient()) {
var json = await httpClient.GetStringAsync(SourceURI);
return json;
}
}
Вышеуказанное не работает и, похоже, не возвращает никаких результатов должным образом. Я не уверен, где мне не хватает заявления, чтобы заставить ждать результата? Я хочу, чтобы метод RetrieveHolidayDatesFromSource() возвращал строку.
Ниже работает отлично, но это синхронно, и я считаю, что его можно улучшить? Обратите внимание, что ниже синхронно, в котором я хотел бы перейти на асинхронный, но по какой-то причине мне не удалось обернуть голову.
public string RetrieveHolidayDatesFromSource() {
var result = this.RetrieveHolidayDatesFromSourceAsync();
/** Do Stuff **/
var returnedResult = this.TransformResults(result); /** This is where Result is actually used**/
return returnedResult;
}
private string RetrieveHolidayDatesFromSourceAsync() {
using (var httpClient = new HttpClient()) {
var json = httpClient.GetStringAsync(SourceURI);
return json.Result;
}
}
Я что-то упустил?
Примечание. По какой-то причине, когда я останавливаю вышеуказанный метод Async, когда он попадает в строку "var json = await httpClient.GetStringAsync(SourceURI)", он просто выходит из точки останова, и я не могу вернуться в метод.