AYUDA .NET

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

Publicado en 13 de agosto, 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 proporciona primitivas de coordinación, colecciones asíncronas, primitivas de sincronización asíncrona y muchas otras características. 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.AsyncEx?

Un paquete C# llamadoNito.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 biblioteca .NET 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 hold 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 desarrolladores): Figura 1 - Página léeme de AsyncEx en GitHub

Características de Nito.AsyncEx

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 dentro de 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 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 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.");
        }
    }
}
Imports System
Imports System.Threading.Tasks
Imports Nito.AsyncEx
Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
	' AsyncLock can be locked asynchronously
	Dim 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.")
		End Using
	End Function
End Class
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 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 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 enaplicaciones .NET node.js es más fácil de usar y ofrece 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 especialmente útil a la hora de generar PDF a partir de páginas web 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 comando utilizado en la consola de NuGet Package Manager es el siguiente:

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 espacios de nombres requeridos por Nito.AsyncEx y IronPDF. 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 renderizarContenido HTML como documento PDF asíncrono es proporcionada por la función GeneratePdfAsync. A continuación, el documento PDF creado se guarda en el disco.

Salida

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

Conclusión

En conclusión, Nito.AsyncEx yIronPDF 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 hace que la experiencia del usuario sea receptiva y permite la creación eficaz de PDF a partir de contenido 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 documentación rica en funciones y fácil de usar para los desarrolladores, así como 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. **Software de hierro el precio comienza en 749 dólares. La rica 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 contemporáneos.

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

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

Descarga gratuita de NuGet Descargas totales: 11,622,374 Ver licencias >