Comment utiliser Async et Multithreading en C# | IronOCR

C&#35 ; Prise en charge de l'asynchronisme et du multithreading avec IronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOcr gère automatiquement le multithreading sur tous les cœurs de CPU et fournit des méthodes asynchrones telles que ReadAsync() pour effectuer l'OCR sans bloquer votre thread principal, garantissant ainsi des applications réactives lors du traitement de documents volumineux.

Introduction

<TODO : Ajouter une image ici -->

Le traitement efficace de grands volumes de données textuelles exige à la fois précision et rapidité pour les opérations de type OCR. Cet article traite de la prise en charge asynchrone et du multithreading dans IronOCR et Tesseract. La programmation asynchrone permet une exécution non bloquante de l'OCR, ce qui permet aux applications de rester réactives pendant les tâches de reconnaissance de texte. Le multithreading offre un parallélisme qui permet d'augmenter considérablement les performances de l'OCR. Ces techniques aident les développeurs à améliorer l'efficacité et la réactivité des applications basées sur l'OCR.

Démarrage rapide : Utilisez ReadAsync pour une OCR asynchrone sans effort

Utilisez la méthode ReadAsync d'IronTesseract pour effectuer l'OCR sans bloquer votre thread principal. Cela permet d'ajouter rapidement une reconnaissance optique de caractères réactive et non bloquante à votre application. Elle fonctionne particulièrement bien lorsque le traitement de documents PDF ou la manipulation simultanée de plusieurs fichiers d'images.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronOCR avec le gestionnaire de packages NuGet

    PM > Install-Package IronOcr

  2. Copiez et exécutez cet extrait de code.

    var result = await new IronOcr.IronTesseract().ReadAsync("image.png");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

Comment fonctionne le multithreading dans IronOCR?

<TODO : Ajouter une image ici -->

IronOcr améliore l'efficacité du traitement des images et de la lecture OCR grâce à un multithreading transparent, ne nécessitant aucune API spécialisée de la part des développeurs. IronTesseract exploite automatiquement tous les threads disponibles sur plusieurs cœurs, optimisant ainsi les ressources du système pour une exécution rapide de l'OCR. Le multithreading intégré simplifie le développement et augmente considérablement les performances en intégrant le parallélisme directement dans le flux de travail de l'OCR.

La bibliothèque multithreaded Tesseract implementation offre ces avantages clés :

  • Utilisation automatique des cœurs de CPU : IronOCR détecte et utilise tous les cœurs disponibles sans configuration manuelle
  • Opérations à sécurité intrinsèque : Toutes les opérations d'OCR sont conçues par défaut pour être à l'abri des threads
  • Gestion optimisée des ressources : Les ressources de mémoire et de traitement sont réparties efficacement entre les différents threads
  • Des performances évolutives : Le temps de traitement diminue proportionnellement au nombre de cœurs disponibles

Voici un exemple de lecture multithread en C# :

:path=/static-assets/ocr/content-code-examples/how-to/async-simple-multithreading.cs
using IronOcr;
using System;

var ocr = new IronTesseract();

using (var input = new OcrPdfInput(@"example.pdf"))
{
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
};
$vbLabelText   $csharpLabel

Pour les scénarios avancés nécessitant une configuration rapide de l'OCR, les développeurs peuvent affiner le comportement du multithreading pour répondre à des exigences de performance spécifiques tout en maintenant la précision.

Comment utiliser la prise en charge de l'asynchronisme dans IronOCR?

<TODO : Ajouter une image ici -->

La programmation asynchrone optimise les performances de l'OCR en permettant aux développeurs d'exécuter des tâches d'OCR sans bloquer le thread principal. Cela permet aux applications de rester réactives lors du traitement de documents volumineux ou d'images pour la reconnaissance de texte. La prise en charge asynchrone permet au système de gérer d'autres tâches pendant que les opérations d'OCR s'exécutent en arrière-plan. Cette capacité est cruciale lors de la mise en œuvre du suivi de la progression de l'OCR dans les interfaces utilisateur.

Cette section couvre l'intégration du support asynchrone dans IronOcr, en démontrant différentes méthodes pour rendre les services OCR non bloquants. Les capacités asynchrones d'IronOCR garantissent des performances optimales à la fois pour les applications de bureau nécessitant une réactivité pendant les opérations d'OCR et pour les services web gérant plusieurs requêtes d'OCR simultanées.

Quand devrais-je utiliser les objets OcrReadTask?

les objets OcrReadTask améliorent le contrôle et la flexibilité des processus d'OCR avec IronOCR. Ces objets encapsulent les opérations d'OCR, permettant une gestion efficace des tâches de reconnaissance de texte. Cette section démontre l'utilisation des objets OcrReadTask dans votre flux de travail IronOCR et montre comment ils lancent et optimisent les tâches d'OCR. les objets OcrReadTask permettent de maximiser les capacités d'IronOCR lors de l'orchestration du traitement de documents complexes ou du réglage fin de la réactivité des applications.

les objets OcrReadTask fonctionnent mieux lorsque :

  • Vous avez besoin d'un contrôle précis de l'exécution des tâches
  • Mise en œuvre de la fonctionnalité abort token pour les opérations annulables
  • Gestion de plusieurs opérations d'OCR simultanées avec des priorités différentes
  • Intégration avec des planificateurs de tâches ou des moteurs de flux de travail personnalisés
:path=/static-assets/ocr/content-code-examples/how-to/async-ocrtask.cs
using IronOcr;

IronTesseract ocr = new IronTesseract();

OcrPdfInput largePdf = new OcrPdfInput("chapter1.pdf");

Func<OcrResult> reader = () =>
{
    return ocr.Read(largePdf);
};

OcrReadTask readTask = new OcrReadTask(reader.Invoke);
// Start the OCR task asynchronously
readTask.Start();

// Continue with other tasks while OCR is in progress
DoOtherTasks();

// Wait for the OCR task to complete and retrieve the result
OcrResult result = await Task.Run(() => readTask.Result);

Console.Write($"##### OCR RESULTS ###### \n {result.Text}");

largePdf.Dispose();
readTask.Dispose();

static void DoOtherTasks()
{
    // Simulate other tasks being performed while OCR is in progress
    Console.WriteLine("Performing other tasks...");
    Thread.Sleep(2000); // Simulating work for 2000 milliseconds
}
$vbLabelText   $csharpLabel

Comment utiliser la méthode ReadAsync?

ReadAsync() fournit un mécanisme direct pour lancer des opérations d'OCR de manière asynchrone. Sans threading ni gestion de tâches complexes, les développeurs peuvent intégrer l'OCR asynchrone dans leurs applications. Cette méthode permet d'éviter que le thread principal ne se bloque pendant les tâches d'OCR, ce qui garantit la réactivité des applications.

La méthode ReadAsync fonctionne bien pour :

  • Applications de bureau qui doivent maintenir la réactivité de l'interface utilisateur
  • Applications web gérant plusieurs requêtes OCR simultanées
  • Scénarios de traitement par lots dans lesquels le suivi de la progression est essentiel
  • Intégration des modèles modernes async/await dans les applications .NET
:path=/static-assets/ocr/content-code-examples/how-to/async-read-async.cs
using IronOcr;
using System;
using System.Threading.Tasks;

IronTesseract ocr = new IronTesseract();

using (OcrPdfInput largePdf = new OcrPdfInput("PDFs/example.pdf"))
{
    var result = await ocr.ReadAsync(largePdf);
    DoOtherTasks();
    Console.Write($"##### OCR RESULTS ###### " +
                $"\n {result.Text}");
}

static void DoOtherTasks()
{
    // Simulate other tasks being performed while OCR is in progress
    Console.WriteLine("Performing other tasks...");
    System.Threading.Thread.Sleep(2000); // Simulating work for 2000 milliseconds
}
$vbLabelText   $csharpLabel

Pourquoi utiliser l'asynchronisme et le multithreading avec IronOCR?

La combinaison de la prise en charge asynchrone et du multithreading dans IronOcr offre de nombreux avantages pour le développement d'applications modernes :

Avantages en termes de performances:

  • Amélioration du débit : Traitez plusieurs documents simultanément sans blocage
  • Meilleure utilisation des ressources : Maximiser l'utilisation de l'unité centrale sur tous les cœurs disponibles
  • Réduction de la latence : le traitement commence immédiatement sans attendre la fin des opérations précédentes
  • Architecture évolutive : gérer des charges de travail croissantes sans modification de l'architecture

Avantages du développement:

  • Code simplifié : plus besoin de gérer les threads manuellement - IronOcr se charge de la complexité
  • Modern Patterns : Prise en charge complète des modèles async/await dans Tesseract 5 pour .NET
  • Intégration facile : Fonctionne de manière transparente avec l'infrastructure asynchrone .NET existante
  • Solutions évolutives : Code clair et lisible qui respecte les meilleures pratiques .NET

Le multithreading dans IronOcr optimise considérablement les tâches d'OCR. Les capacités multithread intégrées, combinées à des méthodes telles que ReadAsync(), simplifient le traitement de grands volumes de données textuelles. Cette combinaison garantit que les applications restent réactives et efficaces, ce qui fait d'IronOcr un outil efficace pour créer des logiciels performants avec des capacités de reconnaissance de texte rationalisées. Pour commencer à utiliser l'ensemble des fonctionnalités, consultez notre guide d'installation du paquet NuGet.

Questions Fréquemment Posées

Comment puis-je effectuer une reconnaissance optique de caractères de manière asynchrone en C# sans bloquer mon fil d'exécution principal ?

IronOCR propose la méthode ReadAsync qui permet une exécution non bloquante de l'OCR. Vous pouvez simplement utiliser `var result = await new IronOcr.IronTesseract().ReadAsync("image.png");` pour exécuter l'OCR de manière asynchrone, en gardant votre application réactive pendant le traitement des documents.

L'OCR utilise-t-elle automatiquement plusieurs cœurs d'unité centrale pour améliorer les performances ?

Oui, IronOCR exploite automatiquement tous les cœurs de processeur disponibles grâce au multithreading intégré. La mise en œuvre d'IronTesseract détecte et utilise tous les cœurs sans nécessiter de configuration manuelle, ce qui permet d'optimiser la gestion des ressources et d'obtenir des performances évolutives.

Quels sont les principaux avantages du multithreading dans le traitement OCR ?

L'implémentation multithread d'IronOCR offre une utilisation automatique des cœurs du processeur, des opérations thread-safe par défaut, une gestion optimisée des ressources pour la mémoire et le traitement, et des performances évolutives où le temps de traitement diminue proportionnellement aux cœurs disponibles.

Puis-je traiter plusieurs documents PDF simultanément avec l'OCR asynchrone ?

Oui, la méthode ReadAsync d'IronOcr fonctionne particulièrement bien lors du traitement de documents PDF ou de la manipulation simultanée de plusieurs fichiers images, vous permettant de traiter plusieurs documents simultanément sans bloquer votre application.

Dois-je écrire un code spécial pour activer le multithreading pour l'OCR ?

Non, IronOCR ne nécessite pas d'API spécialisée ni de configuration manuelle pour le multithreading. La bibliothèque intègre de manière transparente le parallélisme directement dans le flux de travail de l'OCR, en gérant automatiquement les threads sur plusieurs cœurs pour des performances optimales.

Qu'est-ce que l'objet OcrReadTask et comment contribue-t-il au traitement asynchrone ?

L'objet OcrReadTask dans IronOcr vous permet de tirer parti de la concurrence asynchrone lors du traitement des documents. Il vous permet de gérer les opérations d'OCR de manière asynchrone pendant que la bibliothèque gère la complexité du multithreading sous-jacent.

IronOCR est-il entièrement compatible avec .NET 10 ?

.NET 10 est pris en charge par IronOCR for .NET via sa dernière version 2025.12. Vous pouvez installer la bibliothèque à l'aide de NuGet (Install-Package IronOcr) et exécuter des méthodes asynchrones telles que ReadAsync() sous .NET 10 sans configuration particulière.

Chipego
Ingénieur logiciel
Chipego a une aptitude naturelle à l'écoute qui l'aide à comprendre les problèmes des clients et à proposer des solutions intelligentes. Il a rejoint l'équipe Iron Software en 2023, après avoir étudié un baccalauréat en sciences en technologie de l'information. IronPDF et IronOCR sont les deux produits sur lesquels ...
Lire la suite
Prêt à commencer?
Nuget Téléchargements 5,299,091 | Version : 2025.12 vient de sortir