AIDE .NET

C# Nito.Asyncex (Comment ça marche pour les développeurs)

Publié août 13, 2024
Partager:

Introduction

La programmation asynchrone a pris de l'importance dans le domaine de la programmation C# pour créer des applications évolutives et réactives. Avec son abondance d'outils et de techniques asynchrones, AsyncEx est un package robuste qui facilite la programmation asynchrone en C#. Les développeurs peuvent facilement créer des applications complexes en combinant IronPDF, une bibliothèque C# pour la production, l'édition et le traitement de documents PDF, avec d'autres bibliothèques.

Nito.AsyncEx fournit des primitives de coordination, des collections asynchrones, des primitives de synchronisation asynchrones et bien d'autres fonctionnalités. Ces caractéristiques permettent aux programmeurs de créer un code asynchrone lisible, gérable et efficace.

Dans ce guide, nous verrons comment utiliser Nito.AsyncEx avec IronPDF afin d'utiliser la programmation asynchrone pour des activités impliquant des PDF. Nous vous montrerons comment tirer le meilleur parti de ces deux bibliothèques pour améliorer votre expérience de développement en C#, depuis des exemples d'utilisation simples jusqu'à des stratégies complexes.

Qu'est-ce que Nito.AsyncEx ?

Un paquetage C# appeléNito.AsyncEx a été créé par Stephen Cleary pour améliorer et accélérer la programmation asynchrone dans le Framework .NET. Il fournit un ensemble complet d'utilitaires et de techniques permettant de surmonter les difficultés liées à l'écriture de programmes asynchrones. Nitro.AsyncEx est une bibliothèque .NET qui est principalement utilisée pour développer un modèle asynchrone basé sur les tâches.

Nito.AsyncEx est une bibliothèque d'aide précieuse pour les développeurs C#, permettant une intégration transparente des modèles asynchrones basés sur les tâches au sein de leurs projets. Grâce à sa syntaxe intuitive, les développeurs peuvent utiliser des mots-clés tels que await task et hold await task pour gérer efficacement les opérations asynchrones. Cette bibliothèque .NET facilite les opérations asynchrones verrouillées, en garantissant la sécurité des threads et en évitant les conditions de course. Dans l'ensemble, Nito.AsyncEx simplifie la programmation asynchrone, permettant aux développeurs de se concentrer sur la construction d'applications robustes et évolutives.

C# Nito.AsyncEx(Comment ça marche pour les développeurs) : Figure 1 - Page lisez-moi d'AsyncEx sur GitHub

Caractéristiques de Nito.AsyncEx

Primitives avec coordination asynchrone:

Des versions des primitives de synchronisation courantes, telles que les verrous, les sémaphores, les événements de compte à rebours et les barrières, sont proposées par AsyncEx. En coordonnant l'accès aux ressources partagées dans des contextes asynchrones, ces techniques aident les développeurs à éviter les problèmes de course et à garantir la sécurité des threads.

Collections asynchrones:

Les types de collection courants, notamment les files d'attente, les piles et les tampons, sont implémentés de manière asynchrone dans la bibliothèque. Ces collections asynchrones améliorent les performances et l'évolutivité des flux de travail asynchrones en facilitant le traitement et la manipulation efficaces des données asynchrones.

Nito est un flux asynchrone:

AsyncEx fournit des outils permettant de travailler avec des flux asynchrones, ce qui facilite l'intégration de pipelines de traitement de données asynchrones et d'activités d'E/S. Les développeurs peuvent améliorer la réactivité et l'efficacité des activités liées aux E/S en lisant ou en écrivant de manière asynchrone dans des flux asynchrones.

Task Organization:

Grâce aux outils de planification de la bibliothèque, les développeurs peuvent gérer le calendrier et la méthode des actions asynchrones. Grâce à cette fonctionnalité, l'exécution des tâches peut être gérée plus précisément, ce qui permet de maximiser l'utilisation des ressources et d'améliorer les performances de l'application.

Extensions et méthodologies asynchrones:

En ajoutant des méthodes et des extensions asynchrones au Framework .NET, Nito.AsyncEx facilite l'utilisation des modèles et processus de programmation asynchrones standard. Il est désormais plus simple pour les développeurs de créer et de déboguer des applications asynchrones grâce à ces améliorations, qui améliorent la lisibilité et la maintenabilité du code asynchrone.

Créer et configurer un projet

Les étapes ci-dessous peuvent être utilisées pour créer et configurer Nito.AsyncEx dans un projet C# :

Installer le paquet Nito.AsyncEx

À l'aide de l'interface de programmation .NET ou du gestionnaire de paquets NuGet, ajoutez le paquet Nito.AsyncEx à votre projet. À l'aide de la console du gestionnaire de paquets ou d'un terminal, saisissez la commande suivante pour installer le paquet :

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

Configurer le projet Nito.AsyncEx

Après avoir installé le paquetage, vous pouvez utiliser Nito.AsyncEx dans votre projet. Partout dans vos projets C# où vous prévoyez d'utiliser la fonctionnalité de Nito.AsyncEx, importez son espace de noms :

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

Exemple de code pour l'utilisation de Nito.AsyncEx

Vous pouvez désormais utiliser dans votre code les fonctionnalités offertes par Nito.AsyncEx. Par exemple, vous pouvez améliorer et rationaliser vos flux de programmation asynchrones en utilisant des primitives de coordination asynchrones telles que les verrous et les sémaphores, les collections asynchrones, les flux asynchrones, 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#

Pour vous assurer qu'il n'y a pas d'erreur de compilation, construisez votre code C#. Ensuite, exécutez votre application pour vous assurer que Nito.AsyncEx fonctionne comme il se doit.

C# Nito.AsyncEx(Comment ça marche pour les développeurs) : Figure 2 - Sortie de la console pour l'exemple de code

Ces procédures vous permettront d'utiliser les fonctionnalités de Nito.AsyncEx pour des activités de programmation asynchrones en le créant et en le configurant dans un projet C#.

Premiers pas avec IronPDF

Qu'est-ce qu'IronPDF ?

C# Nito.AsyncEx(Comment ça marche pour les développeurs) : Figure 3 - Page web IronPDF

IronPDF est une bibliothèque riche en fonctionnalités permettant de travailler avec des documents PDF dans des applications .NET. Grâce à son vaste ensemble de fonctionnalités, les utilisateurs peuvent modifier des documents PDF préexistants en ajoutant, supprimant ou réorganisant des sections, ainsi que créer des PDF à partir de zéro ou de contenu HTML. IronPDF permet de travailler avec des PDF enapplications .NET nodexel facilite la création de fichiers PDF en fournissant aux développeurs une API puissante pour créer, éditer et convertir des fichiers PDF.

Principales caractéristiques d'IronPDF

  • Convertir HTML en PDF: IronPDF vous permet d'utiliser le contenu HTML, tel que CSS et JavaScript, pour créer des documents PDF de haute qualité. Cette fonctionnalité est particulièrement utile pour générer des PDF à partir de pages web ou de contenu dynamique.
  • Modification et amélioration des PDF: IronPDF offre des capacités d'édition pour les documents PDF préexistants. Les pages d'un PDF peuvent être extraites, du texte, des images, des filigranes ou des commentaires peuvent être ajoutés, et plusieurs PDF peuvent être combinés en un seul document.
  • Création immédiate d'un PDF: Vous pouvez ajouter par programme du texte, des images, des formes et d'autres objets à de nouveaux documents PDF à l'aide de l'API d'IronPDF. Cela permet de générer dynamiquement des rapports, des factures et d'autres documents au format PDF.
  • Sécurité des PDF: En ajoutant une sécurité par mot de passe et en chiffrant les documents PDF à l'aide d'IronPDF, vous pouvez contrôler l'accès et protéger les données importantes.
  • Formulaires PDF: Les utilisateurs peuvent travailler avec des documents PDF en utilisant IronPDF pour créer et compléter des formulaires PDF et saisir des données dans les champs du formulaire.
  • Extraits de texte: IronPDF extrait le contenu textuel des documents PDF pour faciliter la recherche, l'analyse et la manipulation des données textuelles.
  • Conversion vers des formats d'image: Puisque IronPDF peut convertir des documents PDF vers des formats d'image populaires tels que PNG, JPEG et BMP, il convient aux scénarios dans lesquels des images sont nécessaires à la place des PDF.

Installer IronPDF

Assurez-vous que les deux bibliothèques sont ajoutées à votre projet avant de commencer à utiliser Nito.AsyncEx en C# avec IronPDF. Vous pouvez utiliser l'interface de commande .NET ou le gestionnaire de paquets NuGet pour ajouter IronPDF à votre projet. La commande utilisée dans la console NuGet Package Manager est la suivante :

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

Intégrer IronPDF avec Nito.AsyncEx

Imaginons que vous souhaitiez utiliser IronPDF pour générer un document PDF de manière asynchrone et Nito.AsyncEx pour gérer la concurrence. Je vais vous donner un exemple simple pour illustrer cela :

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#

Nous importons les espaces de noms requis par Nito.AsyncEx et IronPDF. Nous utilisons Nito pour générer un AsyncLock. Pour garantir qu'un seul thread puisse accéder à IronPDF à la fois, utilisez AsyncEx. Comme nous générons le document PDF de manière asynchrone dans la méthode principale, nous acquérons le verrou à l'aide de LockAsync() pour garantir un accès exclusif à IronPDF.

Exemple d'utilisation d'IronPDF pour le renduContenu HTML sous forme de document PDF de manière asynchrone est fournie par la fonction GeneratePdfAsync. Le document PDF créé est ensuite enregistré sur le disque.

Sortie

C# Nito.AsyncEx(Comment ça marche pour les développeurs) : Figure 4 - PDF produit à partir de l'exemple de code précédent

Conclusion

En conclusion, Nito.AsyncEx etIronPDF sont intégrés en C#, combinant la force de la programmation asynchrone avec des capacités efficaces de production de PDF. Les développeurs peuvent contrôler la concurrence et synchroniser l'accès à la fonctionnalité de rendu d'IronPDF en utilisant les primitives de coordination asynchrones de Nito.AsyncEx, assurant ainsi la sécurité des threads, et une consommation efficace des ressources.

Grâce aux capacités de rendu HTML vers PDF d'IronPDF et au paradigme async/await de Nito.AsyncEx, les développeurs peuvent créer des applications évolutives et réactives qui produisent des documents PDF de manière asynchrone. Cette combinaison permet de conserver une expérience utilisateur réactive tout en permettant la création efficace de PDF à partir de contenu HTML.

Dans l'ensemble, Nito.AsyncEx et IronPDF fonctionnent ensemble pour permettre aux développeurs C# de créer des applications très performantes qui utilisent la programmation asynchrone et la création de PDF, ce qui augmente la productivité et produit des expériences utilisateur étonnantes.

IronPDF peut offrir une documentation riche en fonctionnalités et conviviale pour les développeurs, ainsi que des solutions logicielles haut de gamme pour les clients et les utilisateurs finaux, en intégrant les technologies IronPDF et Iron Software dans votre pile de développement d'applications d'entreprise. En outre, cette base solide facilitera les projets, les systèmes dorsaux et l'amélioration des processus. Iron Software les prix commencent à 749 $. La documentation riche de ces technologies, la communauté de développeurs en ligne dynamique et les mises à jour fréquentes en font un excellent choix pour les projets de développement de logiciels contemporains.

< PRÉCÉDENT
C# Task.Run (Comment ça marche pour les développeurs)
SUIVANT >
tye .NET (Comment ça marche pour les développeurs)