Я прочитал эту статью , и, насколько я понимаю, вызов .Result
для Задачи, полученной из асинхронного c метода, должен привести к взаимоблокировке одного из действий контроллера.
У меня есть следующий код, по которому я пытался воспроизвести то, что должно было вести себя как тупик:
// GET api/values
[HttpGet]
public ActionResult<string> Get()
{
return GetSomeValue().Result.ToString();
}
private async Task<JObject> GetSomeValue()
{
using (var httpClient = new HttpClient())
{
var jsonString = await httpClient.GetStringAsync("https://localhost:44316/api/values");
return JObject.Parse(jsonString);
}
}
На https://localhost:44316/api/values
у меня есть другое веб-приложение, которое просто возвращает мне действительный json .
Код работает безупречно, хотя, как указано в статье, он должен привести к тупику, так как продолжение метода GetStringAsync
должно ожидать контекст ASP. NET, который следует удерживать. по первому методу Get
(поток запросов).
Почему я не могу воспроизвести тупик, описанный в статье, чего мне не хватает?