Skip to content

ES CSharp Async

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

asíncrono, espera, tarea y ValueTask

Manual C# · Ejemplos UO

async permite await dentro de un método. await espera a que se complete la operación y continúa la ejecución sin crear necesariamente un nuevo hilo. Task representa la finalización de la operación, Task<T> representa la finalización y el resultado. Un método asincrónico ejecuta la parte síncrona hasta la primera espera pendiente.

Ejemplo sencillo (Example.cs)

Guarde este ejemplo por separado como Example.cs. Ejecútelo independientemente de los demás ejemplos de esta página.

Example.cs:

// PROJECT-EXAMPLE
async System.Threading.Tasks.Task<int> ReadAsync()
{
    await System.Threading.Tasks.Task.Delay(1);
    return 7;
}
System.Console.WriteLine(await ReadAsync());

Resultado:

7
async Task<int> CalculateAsync(int value)
{
    await WaitAsync(10);
    return value * 2;
}
int result = await CalculateAsync(21);
UO.Print(result.ToString());
Task<int> FirstAsync() => Task.FromResult(2);
Task<int> SecondAsync() => Task.FromResult(3);
int[] results = await Task.WhenAll(FirstAsync(), SecondAsync());
UO.Print(results.Sum().ToString());

Task.WhenAll espera todas las tareas, WhenAny espera la primera completada. Otras tareas bajo WhenAny no se cancelan automáticamente. ValueTask es útil en API especial y tiene restricciones para volver a esperar. Evite .Wait() y .Result en una cadena asincrónica; esperar en await.

Documentación oficial: async, await, Task y ValueTask - Microsoft Learn.

Clone this wiki locally