IronBarcode Guides pratiques Async et Multithread Comment utiliser Async et Multithread en C# ; avec IronBarcode Hairil Hasyimi Bin Omar Mis à jour:janvier 10, 2026 Télécharger IronBarcode Téléchargement NuGet Téléchargement DLL Essai gratuit Exemplaire pour les LLM Exemplaire pour les LLM Copier la page au format Markdown pour les LLM Ouvrir dans ChatGPT Demandez à ChatGPT à propos de cette page Ouvrir dans les Gémeaux Demandez à Gemini à propos de cette page Ouvrir dans Grok Demandez à Grok à propos de cette page Ouvrir dans la perplexité Demandez à Perplexity à propos de cette page Partager Partager sur Facebook Partager sur X (Twitter) Partager sur LinkedIn Copier l'URL Article par courriel This article was translated from English: Does it need improvement? Translated View the article in English Async et multithreading dans IronBarcode optimisent différemment les performances de lecture de codes-barres - async empêche le blocage du thread principal pendant les opérations d'E/S tandis que multithreading traite plusieurs codes-barres simultanément à travers les cœurs du CPU. Les développeurs confondent souvent les opérations Async et Multithreading. Les deux méthodes améliorent les performances et l'efficacité des programmes en optimisant l'utilisation des ressources du système et en réduisant la durée d'exécution. Cependant, elles diffèrent en termes d'approche, de mécanismes et de cas d'utilisation. IronBarcode prend en charge les deux approches. Cet article explore leurs différences et leur mise en œuvre à l'aide d'IronBarcode. Exemple de démarrage rapide : Lecture de codes-barres asynchrones et multithread Utilisez cet exemple en une ligne pour démarrer instantanément avec IronBarcode. Il montre à quel point il est facile de combiner les options de lecture asynchrone et multithread pour scanner plusieurs images de codes-barres en parallèle avec un minimum de configuration. Commencez dès maintenant à créer des PDF avec NuGet : Installez IronBarcode avec le gestionnaire de packages NuGet PM > Install-Package BarCode Copiez et exécutez cet extrait de code. var results = await IronBarCode.BarcodeReader.ReadAsync(imagePaths, new IronBarCode.BarcodeReaderOptions { Multithreaded = true, MaxParallelThreads = 4, ExpectMultipleBarcodes = true }); Déployez pour tester sur votre environnement de production. Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui grâce à un essai gratuit. Essai gratuit de 30 jours Flux de travail minimal (5 étapes) Téléchargez la bibliothèque C# pour la prise en charge asynchrone et multithread. Utilisez les méthodes ReadAsync et ReadPdfAsync pour la lecture asynchrone des codes-barres à partir d'images et de fichiers PDF. Activez le multithreading en définissant la propriété Multithreaded sur 'true'. Spécifiez le nombre de threads parallèles à l'aide de la propriété MaxParallelThreads Vérifiez la comparaison des performances entre la lecture de codes-barres normale, asynchrone et multithread Comment lire des BarCodes de manière asynchrone avec IronBarcode? <TODO : Ajouter une image ici --> <Description : Diagramme ou capture d'écran illustrant le concept de code --> La lecture asynchrone permet aux opérations longues ou bloquantes de se poursuivre sans bloquer l'exécution du thread principal. En C#, utilisez les mots-clés async et await avec les méthodes prenant en charge les fonctionnalités asynchrones. Cette approche ne crée pas de fils de discussion supplémentaires, mais libère le fil de discussion actuel. Bien que le fil d'exécution principal initie et gère des tâches, il ne reste pas exclusivement consacré à une seule tâche. Le thread principal revient lorsque la méthode asynchrone requiert son intervention, ce qui lui permet de se consacrer à d'autres tâches lorsqu'il n'en a pas besoin, ce qui est particulièrement utile pour les tâches liées aux E/S, telles que la lecture/écriture de fichiers ou les requêtes réseau. Prenons l'exemple de la lecture de codes-barres. Le processus implique : Lecture du fichier Application des options de lecture Décodage du code-barres Pendant la lecture du fichier, la tâche principale peut être libérée. Cela profite aux scénarios comportant plusieurs fichiers d'images ou des PDF volumineux, comme le démontre notre tutoriel sur la lecture des codes-barres. Utilisez les méthodes ReadAsync et ReadPdfAsync pour lire les codes-barres de manière asynchrone pour les images et les documents PDF, respectivement. Avant de mettre en œuvre des opérations asynchrones, assurez-vous d'avoir installé IronBarcode via NuGet dans votre projet. :path=/static-assets/barcode/content-code-examples/how-to/async-multithread-async.cs using IronBarCode; using System; using System.Collections.Generic; using System.Threading.Tasks; List<string> imagePaths = new List<string>() { "image1.png", "image2.png" }; // Barcode reading options BarcodeReaderOptions options = new BarcodeReaderOptions() { ExpectMultipleBarcodes = true }; // Read barcode using Async BarcodeResults asyncResult = await BarcodeReader.ReadAsync(imagePaths, options); // Print the results to console foreach (var result in asyncResult) { Console.WriteLine(result.ToString()); } Imports IronBarCode Imports System Imports System.Collections.Generic Imports System.Threading.Tasks Private imagePaths As New List(Of String)() From {"image1.png", "image2.png"} ' Barcode reading options Private options As New BarcodeReaderOptions() With {.ExpectMultipleBarcodes = True} ' Read barcode using Async Private asyncResult As BarcodeResults = await BarcodeReader.ReadAsync(imagePaths, options) ' Print the results to console For Each result In asyncResult Console.WriteLine(result.ToString()) Next result $vbLabelText $csharpLabel L'extrait de code ci-dessus instancie une Liste de chemins d'images à lire de manière asynchrone par IronBarcode. Pour lire les images, utilisez la méthode ReadAsync de la classe BarcodeReader. Spécifiez les imagePaths et les options de lecture. Pour les options de configuration avancées, consultez notre guide sur les paramètres du lecteur de codes-barres. Cette méthode d'opération asynchrone est également disponible pour la lecture des codes-barres dans les documents PDF via ReadPdfAsync dans la même classe. Pour les configurations de lecture PDF spécifiques, consultez notre Guide des paramètres du lecteur de codes-barres PDF. Quand devrais-je utiliser la lecture asynchrone plutôt que les méthodes normales? La lecture asynchrone excelle dans plusieurs scénarios : Applications d'interface utilisateur : Applications Windows Forms ou WPF nécessitant une réactivité de l'interface utilisateur. Async permet d'éviter le gel de l'interface lors de la lecture des codes-barres. Applications web : Applications ASP.NET gérant plusieurs requêtes simultanées sans bloquer les threads, notamment lors du traitement des images de codes-barres téléchargées. Traitement par lots : lecture séquentielle de plusieurs images de codes-barres ou de PDF, permettant à d'autres tâches de s'exécuter pendant les opérations d'E/S. Opérations réseau : Lecture de codes-barres à partir de sources ou d'URL distantes, comme le montre notre exemple lire des codes-barres à partir d'une URL de manière asynchrone. Pourquoi la lecture asynchrone améliore-t-elle la réactivité des applications ? La lecture asynchrone améliore la réactivité en libérant le thread principal pendant les opérations liées aux entrées/sorties. Lorsqu'IronBarcode lit un fichier image sur le disque ou traite un PDF, le fil d'exécution n'attend pas au ralenti. La traduction doit rester professionnelle et préserver l'exactitude technique tout en expliquant les caractéristiques et les avantages de ces outils de développement. Cela est particulièrement important lorsqu'il s'agit de : - Fichiers d'images volumineux nécessitant un temps de chargement important - PDF avec plusieurs pages contenant des codes-barres - Sources d'images en réseau - Scénarios nécessitant des [filtres de correction d'image](https://ironsoftware.com/csharp/barcode/how-to/image-correction/) avant la détection des codes-barres ### Quels sont les pièges courants lors de l'utilisation de la lecture asynchrone de codes-barres ? Lors de la mise en œuvre de la lecture asynchrone de codes-barres, faites attention à ces problèmes courants : 1. **Deadlocks** : Évitez les `Result` ou `Wait()` sur les méthodes asynchrones dans les contextes d'interface utilisateur. Utilisez toujours `await` tout au long de la chaîne d'appel. 2. **Gestion des exceptions** : Enveloppez les appels asynchrones dans des blocs try-catch, car les exceptions dans les méthodes asynchrones peuvent ne pas se propager comme prévu. 3. **Changement de contexte** : Envisagez l'utilisation de `ConfigureAwait(false)` lorsque vous n'avez pas besoin de revenir au contexte de synchronisation d'origine. 4. **Fausses idées sur les performances** : L'asynchronisme n'accélère pas les opérations individuelles ; il améliore la réactivité des applications. Pour améliorer la vitesse avec plusieurs images, envisagez le multithreading. Pour le dépannage des problèmes liés à async, consultez notre [guide de dépannage de la reconnaissance des codes-barres](https://ironsoftware.com/csharp/barcode/troubleshooting/barcode-not-recognized/). ## Comment activer la lecture multithread des BarCodes? Contrairement aux opérations asynchrones, le multithreading exécute un processus unique sur plusieurs threads simultanément. Au lieu d'une exécution séquentielle dans un seul thread, le multithreading répartit les tâches entre plusieurs threads pour une exécution simultanée. Le multithreading nécessite plusieurs cœurs d'unité centrale, car ces cœurs exécutent indépendamment les threads. Tout comme les opérations asynchrones, le multithreading améliore les performances et la réactivité des applications. Dans IronBarcode, activez le multithreading en définissant la propriété `Multithreaded` et en spécifiant le nombre maximal de cœurs pour l'exécution simultanée à l'aide de `MaxParallelThreads` dans `BarcodeReaderOptions`. La valeur par défaut de `MaxParallelThreads` est de 4, ajustable en fonction des cœurs de CPU disponibles. Pour des configurations de performances optimales, consultez notre [guide des options de vitesse de lecture](https://ironsoftware.com/csharp/barcode/how-to/reading-speed-options/). [{i:(Pour trouver les cœurs disponibles : Gestionnaire des tâches -> onglet Performances -> Cliquez sur Processeur. Le champ " Cores " affiche le nombre.@@--BRACKET-FERME--@@ ```cs :path=/static-assets/barcode/content-code-examples/how-to/async-multithread-multithread.cs ``` Quel est le niveau d'amélioration des performances auquel je peux m'attendre ? Lisons deux exemples d'images et comparons les temps de lecture pour des opérations normales, asynchrones et multithread.  Lecture normale Lecture asynchrone Lecture multithread (4 cœurs) 1,75 seconde 1,67 seconde 1,17 seconde La comparaison montre une augmentation significative des performances avec la lecture asynchrone et multithread. Le multithreading apporte une amélioration d'environ 33 % par rapport à la lecture normale, tandis que l'asynchrone apporte une amélioration d'environ 5 %. Cependant, ces opérations ont des objectifs et des approches différents. Choisissez l'approche qui correspond le mieux aux exigences de votre application. Les améliorations de performance varient en fonction de : - Nombre d'images traitées - Complexité de l'image et qualité du BarCode - Cœurs de processeur disponibles - Autres ressources système Pour les situations avec plusieurs codes-barres sur un même document, consultez le guide [Lire plusieurs codes-barres](https://ironsoftware.com/csharp/barcode/how-to/read-multiple-barcodes/). ### Quand choisir le multithreading plutôt que les opérations asynchrones? Choisissez le multithreading lorsque : 1. **Opérations liées au PCU** : Le traitement implique des calculs lourds tels que des filtres d'image complexes ou des images à haute résolution 2. **Traitement par lots** : Plusieurs images indépendantes nécessitent un traitement simultané 3. **Systèmes multicœurs** : L'environnement de déploiement dispose de plusieurs cœurs d'unité centrale 4. **Les performances sont essentielles** : La vitesse de traitement brute l'emporte sur l'efficacité des ressources Choisissez les opérations asynchrones lorsque : 1. **Opérations liées aux entrées-sorties** : La plupart du temps, il s'agit de lire des fichiers ou d'attendre des réponses du réseau 2. **Applications d'interface utilisateur** : Le maintien d'interfaces utilisateur réactives est crucial 3. : Exécution sur des systèmes dotés d'un nombre limité de cœurs d'unité centrale 4. **Applications web** : Traitement efficace de plusieurs requêtes simultanées ### Comment déterminer la valeur optimale de MaxParallelThreads? La valeur optimale de `MaxParallelThreads` dépend de plusieurs facteurs : 1. **Cœurs d'unité centrale disponibles** : Commencez avec `Environment.ProcessorCount` comme base de référence 2. **Type de charge de travail** : Pour la lecture pure de codes-barres, utiliser 75 % des cœurs disponibles 3. **Ressources système** : Laissez une marge de manœuvre pour le système d'exploitation et les autres processus 4. **Résultats des tests** : Étalonnage avec votre charge de travail spécifique Voici une approche pratique pour trouver la valeur optimale : ```csharp int optimalThreads = Math.Max(1, Environment.ProcessorCount - 1); ``` Pour les environnements de production, surveillez les performances et ajustez-les en fonction des schémas d'utilisation réels. Envisagez de mettre en œuvre [la configuration des clés de licence](https://ironsoftware.com/csharp/barcode/get-started/license-keys/) pour les déploiements en entreprise nécessitant des performances maximales. Pour connaître les capacités complètes de l'API, consultez la [référence de l'API IronBarcode](https://ironsoftware.com/csharp/barcode/object-reference/api/). Questions Fréquemment Posées Quelle est la différence entre async et multithreading lors de la lecture de codes-barres ? Avec IronBarcode, les opérations asynchrones évitent de bloquer le thread principal pendant les tâches d'E/S comme la lecture de fichiers, tandis que le multithreading traite plusieurs codes-barres simultanément sur les cœurs du processeur. L'asynchronisme utilise les mots-clés async/await pour libérer le fil d'exécution principal pendant les opérations longues, tandis que le multithreading crée plusieurs fils d'exécution pour gérer le traitement des codes-barres en parallèle. Comment mettre en œuvre la lecture asynchrone de codes-barres en C# ? IronBarcode fournit les méthodes ReadAsync() et ReadPdfAsync() pour la lecture asynchrone de codes-barres. Il suffit d'utiliser ces méthodes avec les mots-clés async/await en C# pour lire les codes-barres des images et des PDF sans bloquer le fil d'exécution principal. Cette méthode est particulièrement utile lors du traitement de plusieurs fichiers d'images ou de documents PDF volumineux. Comment puis-je activer le multithreading pour le traitement des codes-barres ? Pour activer le multithreading dans IronBarcode, définissez la propriété Multithreaded sur 'true' dans les BarcodeReaderOptions. Vous pouvez également contrôler le nombre de threads parallèles en utilisant la propriété MaxParallelThreads, ce qui vous permet d'optimiser les performances en fonction des capacités de votre système. Puis-je combiner l'asynchronisme et le multithreading pour des performances optimales ? Oui, IronBarcode vous permet de combiner les deux approches. Vous pouvez utiliser ReadAsync() avec le multithreading activé en réglant Multithreaded = true et en configurant MaxParallelThreads dans BarcodeReaderOptions. Cette combinaison permet d'obtenir des opérations d'E/S non bloquantes et un traitement parallèle sur plusieurs cœurs de CPU. Quand dois-je utiliser async vs multithreading pour la lecture de codes-barres ? Utilisez des opérations asynchrones dans IronBarcode lorsque vous traitez des tâches liées aux E/S, comme la lecture de fichiers volumineux ou les requêtes réseau, car cela permet d'éviter le gel de l'interface utilisateur. Utilisez le multithreading lorsque vous devez traiter plusieurs codes-barres simultanément et que vous disposez de ressources CPU. Pour de meilleurs résultats, combinez les deux approches lorsque vous traitez plusieurs images de codes-barres ou PDF de grande taille. Hairil Hasyimi Bin Omar Discutez maintenant avec l'équipe d'ingénierie Ingénieur logiciel Comme tous les grands ingénieurs, Hairil est un apprenant avide. Il affine ses connaissances en C#, Python et Java, utilisant ces connaissances pour apporter de la valeur aux membres de l'équipe dans toute Iron Software. Hairil a rejoint l'équipe d'Iron Software depuis l'Université Teknologi MARA en Malaisie, ...Lire la suite Prêt à commencer? Nuget Téléchargements 2,002,059 | Version : 2025.12 vient de sortir Téléchargement gratuit NuGet Total des téléchargements :2,002,059 Voir Licences
Testez dans un environnement en direct Testez en production sans filigranes.Fonctionne où que vous en ayez besoin.
Produit entièrement fonctionnel Profitez de 30 jours de produit entièrement fonctionnel.Configurez-le et faites-le fonctionner en quelques minutes.
Nous répondons à toutes vos questions afin de nous assurer que vous disposez de toutes les informations dont vous avez besoin. (Sans aucun engagement)