Асинхронная операция не работает, хотя я написал ее с помощью async/await - C#C#

Место общения программистов C#
Ответить
Anonymous
 Асинхронная операция не работает, хотя я написал ее с помощью async/await - C#

Сообщение Anonymous »

Я уже давно пытаюсь написать асинхронный код на C#, я сделал это и был уверен, что он асинхронный, недавно я прочитал, что проверил с почтальоном время, необходимое функции для завершения, когда она асинхронная и когда она синхронная, и кажется, что это занимает ОДНО и то же время, что я сделал не так в своем коде?

Вот мой код:

Код: Выделить всё

    [HttpGet]
[Route("customerslist")]
public async Task getData()
{
string url1 = @"https://jsonplaceholder.typicode.com/photos";
string url2 = @"https://jsonplaceholder.typicode.com/comments";
string url3 = @"https://jsonplaceholder.typicode.com/todos";

Task firstTask = myHttpCall(url1);
Task secondTask = myHttpCall(url2);
Task thirdTask = myHttpCall(url3);

await Task.WhenAll(firstTask, secondTask, thirdTask);

var result = firstTask.Result + secondTask.Result + thirdTask.Result;
return Ok(result);
}

private async Task myHttpCall(string path)
{
string html = string.Empty;
string url = path;

// Simple http call to another URL to receive JSON lists.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.AutomaticDecompression = DecompressionMethods.GZip;

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
html = reader.ReadToEnd();
}

return html;
}
Я делаю HTTP-запрос к другому URL-адресу, чтобы получить их списки JSON. Кто-нибудь может мне помочь, пожалуйста? Буду рад, если кто-нибудь подскажет, как это правильно написать.

Подробнее здесь: https://stackoverflow.com/questions/456 ... sync-await
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»