У меня есть следующий фрагмент кода:
public ActionResult DraftScores()
{
// other code
var json = "";
var fixturesUrl = "someURL";
using (WebClient wc = new WebClient())
{
wc.Headers.Add("X-Auth-Token", "7d594032xxxxxxxxxxxxxxxxxxxxx");
json = wc.DownloadString(fixturesUrl);
}
var fixtureList = new JavaScriptSerializer().Deserialize<FixtureList>(json);
model.Matches = fixtureList.matches;
return View(model);
}
Я пытался извлечь это из его собственного асинхронного метода:
private async Task<List<Match>> GetFixturesAsync()
{
var json = "";
var fixturesUrl = "someURL";
using (WebClient wc = new WebClient())
{
wc.Headers.Add("X-Auth-Token", "7d594032xxxxxxxxxxxxxxxxxxxxx");
json = await wc.DownloadStringTaskAsync(fixturesUrl);
}
var fixtureList = new JavaScriptSerializer().Deserialize<FixtureList>(json);
return fixtureList.matches;
}
код вызова:
public ActionResult DraftScores()
{
//other code
var fixtures = GetFixturesAsync();
//other code
model.Matches = fixtures.Result;
return View(model);
}
В исходном коде вызов DownloadString выполняется примерно за 200 мс.Однако вызов DownloadStringTaskAsync все еще выполняется через несколько секунд.Что-то не так с тем, как я написал метод?