AYUDA .NET

C# Nito.Asyncex (Cómo funciona para desarrolladores)

Actualizado agosto 13, 2024
Compartir:

Introducción

La programación asíncrona ha crecido en importancia en el campo de la programación en C# para crear aplicaciones escalables y con capacidad de respuesta. Con su abundancia de herramientas y técnicas asíncronas, AsyncEx es un paquete robusto que facilita la programación asíncrona en C#. Los desarrolladores pueden crear fácilmente aplicaciones complejas combinando IronPDF, una biblioteca de C# para producir, editar y procesar documentos PDF, con otras bibliotecas.

Nito.AsyncEx primitivas de coordinación asíncrona, colecciones asíncronas, primitivas de sincronización asíncrona, y muchas otras características están disponibles con AsyncEx. Estas características permiten a los programadores crear código asíncrono legible, manejable y eficiente.

En esta guía veremos cómo utilizar Nito.AsyncEx con IronPDF para hacer uso de la programación asíncrona en actividades relacionadas con PDFs. Le mostraremos cómo sacar el máximo partido a estas dos bibliotecas para mejorar su experiencia de desarrollo en C#, desde sencillos ejemplos de uso hasta complejas estrategias.

¿Qué es Nito.AsynCX?

Un paquete C# llamado Nito.AsyncEx fue creado por Stephen Cleary para mejorar y agilizar la programación asíncrona en .NET Framework. Proporciona un amplio conjunto de utilidades y técnicas para superar los retos asociados a la escritura de programas asíncronos. Nitro.AsyncEx es una librería de red que se utiliza principalmente para desarrollar un patrón asíncrono basado en tareas.

Nito.AsyncEx es una valiosa biblioteca de ayuda para desarrolladores de C#, que proporciona una integración perfecta de patrones asíncronos basados en tareas dentro de sus proyectos. Con su sintaxis intuitiva, los desarrolladores pueden utilizar palabras clave como await task y held await task para gestionar operaciones asíncronas de forma eficaz. Esta biblioteca .NET facilita las operaciones asíncronas bloqueadas, garantizando la seguridad de los subprocesos y evitando las condiciones de carrera. En general, Nito.AsyncEx simplifica la programación asíncrona, permitiendo a los desarrolladores centrarse en la creación de aplicaciones robustas y escalables.

C# Nito.Asyncex (Cómo funciona para los desarrolladores): Figura 1 - AsyncEx github 'read me' page

Características de Nito.AsynEX

Primitivos con coordinación asíncrona:

AsyncEx ofrece versiones de primitivas de sincronización comunes, como bloqueos, semáforos, eventos de cuenta atrás y barreras. Al coordinar el acceso a los recursos compartidos en contextos asíncronos, estas técnicas ayudan a los desarrolladores a evitar problemas de carrera y garantizar la seguridad de los hilos.

Colecciones asíncronas:

Los tipos de colecciones más comunes, como colas, pilas y búferes, se implementan de forma asíncrona en la biblioteca. Estas colecciones asíncronas mejoran el rendimiento y la escalabilidad de los flujos de trabajo asíncronos al facilitar un procesamiento y una manipulación de datos asíncronos eficaces.

Nito es un flujo asíncrono:

AsyncEx proporciona herramientas para trabajar con flujos asíncronos, facilitando la integración de canalizaciones de procesamiento de datos y actividades de E/S asíncronas. Los desarrolladores pueden aumentar la capacidad de respuesta y la eficiencia de las actividades de E/S leyendo o escribiendo en flujos asíncronos de forma asíncrona.

Organización de la tarea:

Con la ayuda de las herramientas de programación de la biblioteca, los desarrolladores pueden gestionar el tiempo y el método de las acciones asíncronas. Con la ayuda de esta funcionalidad, la ejecución de trabajos puede gestionarse con mayor precisión, maximizando el uso de recursos y mejorando el rendimiento de la aplicación.

Extensiones y metodologías asíncronas:

Al añadir métodos asíncronos y extensiones al marco .NET, Nito.AsyncEx facilita el uso de patrones y procesos de programación asíncronos estándar. Ahora es más sencillo para los desarrolladores crear y depurar aplicaciones asíncronas gracias a estas mejoras, que mejoran la legibilidad y mantenibilidad del código asíncrono.

Crear y configurar un proyecto

Los siguientes pasos se pueden utilizar para crear y configurar Nito.AsyncEx en un proyecto de C#:

Instalar paquete Nito.AsyncEx

Utilizando la CLI .NET o el gestor de paquetes NuGet, añada el paquete Nito.AsyncEx a su proyecto. Utilizando la consola del gestor de paquetes o un terminal, escriba el siguiente comando para instalar el paquete:

Install-Package Nito.AsyncEx
Install-Package Nito.AsyncEx
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Configurar el proyecto Nito.AsyncEx

Después de instalar el paquete, puedes utilizar Nito.AsyncEx en tu proyecto. Dondequiera que en sus proyectos de C# usted planee utilizar la funcionalidad de Nito.AsyncEx, importe su namespace:

using Nito.AsyncEx;
using Nito.AsyncEx;
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Ejemplo de código de uso de Nito.AsyncEx

Ahora, puedes utilizar en tu código la funcionalidad que ofrece Nito.AsyncEx. Por ejemplo, puede mejorar y agilizar sus flujos de trabajo de programación asíncrona utilizando primitivas de coordinación asíncrona como bloqueos y semáforos, colecciones asíncronas, flujos asíncronos, etc.

using System;
using System.Threading.Tasks;
using Nito.AsyncEx;
class Program
{
    static async Task Main(string[] args)
    {
    // AsyncLock can be to locked asynchronously
    var mutex = new AsyncLock();
        // Example: Asynchronous lock
        using (await mutex.LockAsync())
        {
            Console.WriteLine("Inside the lock.");
        // delay 1 second
            await Task.Delay(1000); // Simulate asynchronous operation
            Console.WriteLine("Lock released.");
        }
    }
}
using System;
using System.Threading.Tasks;
using Nito.AsyncEx;
class Program
{
    static async Task Main(string[] args)
    {
    // AsyncLock can be to locked asynchronously
    var mutex = new AsyncLock();
        // Example: Asynchronous lock
        using (await mutex.LockAsync())
        {
            Console.WriteLine("Inside the lock.");
        // delay 1 second
            await Task.Delay(1000); // Simulate asynchronous operation
            Console.WriteLine("Lock released.");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Para asegurarte de que no hay errores de compilación, compila tu código C#. A continuación, ejecuta tu aplicación para asegurarte de que Nito.AsyncEx funciona como debería.

C# Nito.Asyncex (Cómo funciona para los desarrolladores): Figura 2 - Salida de la consola para el ejemplo de código

Estos procedimientos le permitirán utilizar la funcionalidad de Nito.AsyncEx para actividades de programación asíncrona creándolo y configurándolo en un proyecto C#.

Primeros pasos con IronPDF

¿Qué es IronPDF?

C# Nito.Asyncex (Cómo funciona para los desarrolladores): Figura 3 - Página web de IronPDF

IronPDF es una biblioteca repleta de funciones para trabajar con documentos PDF en aplicaciones .NET. Con su amplio conjunto de funciones, los usuarios pueden modificar documentos PDF preexistentes añadiendo, eliminando o reorganizando secciones, así como crear PDF desde cero o con contenido HTML. IronPDF permite trabajar con archivos PDF en .NET proporcionando a los desarrolladores una potente API para crear, editar y convertir archivos PDF.

Características principales de IronPDF

  • Convierta HTML a PDF: IronPDF le permite utilizar contenido HTML, como CSS y JavaScript, para crear documentos PDF de alta calidad. Esta función resulta muy útil para generar PDF a partir de páginas en línea o contenidos dinámicos.
  • Modificación y mejora de PDF: IronPDF ofrece funciones de edición para documentos PDF preexistentes. A un PDF se le pueden extraer las páginas, añadir texto, imágenes, marcas de agua o comentarios, y combinar varios PDF en un solo documento.
  • Creación inmediata de un PDF: Puede añadir mediante programación texto, imágenes, formas y otros objetos a nuevos documentos PDF utilizando la API de IronPDF. Esto permite la generación dinámica de informes en PDF, facturas y otros documentos.
  • Seguridad PDF: Al añadir seguridad mediante contraseña y cifrar los documentos PDF con IronPDF, puede controlar el acceso y proteger los datos importantes.
  • Formularios PDF: Los usuarios pueden trabajar con documentos PDF utilizando IronPDF para crear y completar formularios PDF e introducir datos en los campos de los formularios.
  • Extractos de texto: IronPDF extrae el contenido de texto de los documentos PDF para facilitar la búsqueda, el análisis y la manipulación de los datos de texto.

  • Conversión a formatos de imagen: Dado que IronPDF puede convertir documentos PDF a formatos de imagen populares como PNG, JPEG y BMP, es adecuado en escenarios en los que se necesitan imágenes en lugar de PDF.

Instalar IronPDF

Asegúrese de que ambas librerías están añadidas a su proyecto antes de empezar a utilizar Nito.AsyncEx en C# con IronPDF. Puede utilizar .NET CLI o NuGet Package Manager para añadir IronPDF a su proyecto. El siguiente comando se utiliza en la consola de NuGet Package Manager:

Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
VB   C#

Integrar IronPDF con Nito.AsyncEx

Digamos que usted tiene un caso en el que desea utilizar IronPDF para generar un documento PDF de forma asíncrona y Nito.AsyncEx para gestionar la concurrencia. Le pondré un ejemplo sencillo para ilustrarlo:

using System;
using System.Threading.Tasks;
using Nito.AsyncEx;
using IronPdf;
class Program
{
    static async Task Main(string[] args)
    {
        // Create an asynchronous lock
        AsyncLock asyncLock = new AsyncLock();
        // Use the lock to ensure only one thread is accessing IronPDF at a time
        using (await asyncLock.LockAsync())
        {
            // Generate the PDF document asynchronously
            await GeneratePdfAsync();
        }
    }
    static async Task GeneratePdfAsync()
    {
        // Create IronPDF Renderer
        var Renderer = new IronPdf.HtmlToPdf();
        // Create HTML content for the PDF
        string htmlContent = "<h1>Hello, IronPDF!</h1>";
        // Convert HTML to PDF asynchronously
        var pdfDocument = await Renderer.RenderHtmlAsPdfAsync(htmlContent);
        // Save the PDF document
        pdfDocument.SaveAs("example.pdf");
    }
}
using System;
using System.Threading.Tasks;
using Nito.AsyncEx;
using IronPdf;
class Program
{
    static async Task Main(string[] args)
    {
        // Create an asynchronous lock
        AsyncLock asyncLock = new AsyncLock();
        // Use the lock to ensure only one thread is accessing IronPDF at a time
        using (await asyncLock.LockAsync())
        {
            // Generate the PDF document asynchronously
            await GeneratePdfAsync();
        }
    }
    static async Task GeneratePdfAsync()
    {
        // Create IronPDF Renderer
        var Renderer = new IronPdf.HtmlToPdf();
        // Create HTML content for the PDF
        string htmlContent = "<h1>Hello, IronPDF!</h1>";
        // Convert HTML to PDF asynchronously
        var pdfDocument = await Renderer.RenderHtmlAsPdfAsync(htmlContent);
        // Save the PDF document
        pdfDocument.SaveAs("example.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Importamos los namespaces requeridos por Nito.IronPDF y AsyncEx.Utilizamos Nito para generar un AsyncLock. Para garantizar que sólo un hilo puede acceder a IronPDF a la vez, utilice AsyncEx. Como generamos el documento PDF de forma asíncrona dentro del método principal, adquirimos el bloqueo utilizando LockAsync() para garantizar el acceso exclusivo a IronPDF.

Un ejemplo de uso de IronPDF para renderizar HTML como documento PDF de forma asíncrona se proporciona mediante la función GeneratePdfAsync. A continuación, el documento PDF creado se guarda en el disco.

Salida

C# Nito.Asyncex (Cómo funciona para los desarrolladores): Figura 4 - PDF resultante del ejemplo de código anterior

Conclusión

En conclusión, Nito.AsyncEx y IronPDF se integran en C#, combinando la fuerza de la programación asíncrona con unas eficaces capacidades de producción de PDF. Los desarrolladores pueden controlar la concurrencia y sincronizar el acceso a la funcionalidad de renderizado de IronPDF utilizando las primitivas de coordinación asíncrona de Nito.AsyncEx, garantizando la seguridad de los hilos y un consumo eficiente de los recursos.

Con las capacidades de renderizado de HTML a PDF de IronPDF y el paradigma async/await de Nito.AsyncEx, los desarrolladores pueden crear aplicaciones escalables y con capacidad de respuesta que producen documentos PDF de forma asíncrona. Esta combinación mantiene la capacidad de respuesta del usuario al tiempo que permite la creación eficaz de PDF a partir de texto HTML.

En general, Nito.AsyncEx y IronPDF trabajan juntos para permitir a los desarrolladores de C# crear aplicaciones de alto rendimiento que hacen uso de la programación asíncrona y la creación de PDF, lo que aumenta la productividad y produce experiencias de usuario sorprendentes.

IronPDF puede ofrecer documentos para desarrolladores con numerosas funciones y soluciones de software de gama alta para clientes y usuarios finales mediante la integración de las tecnologías IronPDF y Iron Software en su pila de desarrollo de aplicaciones empresariales. Además, esta sólida base facilitará los proyectos, los sistemas backend y la mejora de los procesos. **IronSoftware a partir de 749 dólares. La abundante documentación de estas tecnologías, su vibrante comunidad de desarrolladores en línea y sus frecuentes actualizaciones las convierten en una gran opción para los proyectos de desarrollo de software actuales.

< ANTERIOR
C# Task.Run (Cómo Funciona Para Desarrolladores)
SIGUIENTE >
tye .NET (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.9 acaba de salir

Descarga gratuita de NuGet Descargas totales: 10,516,730 View Licenses >