Есть ли простой пример преимуществ асинхронного ожидания в C#?C#

Место общения программистов C#
Гость
Есть ли простой пример преимуществ асинхронного ожидания в C#?

Сообщение Гость »


Сейчас я не могу понять разницу между асинхронным и синхронизирующим выполнением кода в API.
Мне хотелось бы увидеть пример использования асинхронного ожидания в C#, который бы ясно показал мне, почему это хорошо.< /p>
Я попытался создать простой проект консольного приложения, который имитировал бы вызов API.

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

using System.Threading.Tasks;

namespace TestAppConsole
{
internal class Program
{
public static async Task Main()
{
var asyncProcessor = new AsyncDataProcessor();
await asyncProcessor.ProcessDataAsync();
}
}
}

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

using System;
using System.Threading.Tasks;

namespace TestAppConsole
{
public class AsyncDataProcessor
{
public async Task ProcessDataAsync()
{
var api1Data = await GetDataFromApi1Async();
var api2Data = await GetDataFromApi2Async();

var result = Process(api1Data, api2Data);

Console.WriteLine(result);
}

private async Task GetDataFromApi1Async()
{
// Simulate an asynchronous API call
await Task.Delay(2000);
return "Data from API 1";
}

private async Task GetDataFromApi2Async()
{
// Simulate another asynchronous API call
await Task.Delay(2000);
return "Data from API 2";
}

private string Process(string data1, string data2)
{
// Simulate data processing
return $"Processed: {data1} and {data2}";
}
}
}
I thought that execution would take around 2s, but it still takes 4s, as in sync code.
Explain to me, please, how can I see the difference between async and sync code in WebAPI?
Or what I've done wrong in my example, so it runs sync instead of async?


Источник: https://stackoverflow.com/questions/781 ... await-in-c

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