csharp-asynxex

AsyncEx, librería para programación asíncrona en C#


AsyncEx es una biblioteca de código abierto desarrollada en C# por Stephen Cleary que simplifica la programación asíncrona en .NET.

La programación asíncrona siempre tiene sus dificultadas para implementar correctamente. Esto lleva a errores y comportamientos no deseados y, además, muy difíciles de detectar.

Es aquí donde entra AsyncEx. Proporciona una variedad de tipos y métodos que facilitan la escritura de código asíncrono, reducen la complejidad y mejoran el rendimiento.

Entre las distintas utilidades que proporciona, la más populares y conocidas son AsyncLock, que permite bloquear en una tarea asíncrona, y AsyncManualResetEvent, que permite la sincronización de eventos entre múltiples hilos.

Otras funcionalidades son las colecciones asíncronas y concurrentes, AsyncMonitor, AsyncSemaphore, AsyncCountdownEvent, and AsyncReaderWriterLock, AsyncLazy, AsyncContext.

Cómo usar AsyncEx

Podemos añadir la biblioteca a un proyecto de .NET fácilmente, a través del paquete Nuget correspondiente.

Install-Package Nito.AsyncEx

Aquí tenéis un ejemplo de cómo usar AsyncLock de AsyncEx extraídos de la documentación de la librería

private readonly AsyncLock _mutex = new AsyncLock();
public async Task UseLockAsync()
{
  // AsyncLock can be locked asynchronously
  using (await _mutex.LockAsync())
  {
    // It's safe to await while the lock is held
    await Task.Delay(TimeSpan.FromSeconds(1));
  }
}

AsyncEx es Open Source, y todo el código y documentación está disponible en el repositorio del proyecto en https://github.com/StephenCleary/AsyncEx

🍪 Lo de las cookies

Nuestro sitio usa cookies para analizar el tráfico de red

Al usar el sitio, aceptas el uso estas cookies.

Más información en Política de Cookies y Privacidad