Prise en charge asynchrone et multithread en C# avec IronOCR

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

Dans le paysage en constante évolution du développement logiciel, le traitement efficace de grands volumes de données textuelles demeure un défi crucial. Dans cet article, nous explorons la synergie dynamique du support asynchrone et du multithreading dans le contexte d'IronOCR et de Tesseract. La programmation asynchrone introduit un paradigme non bloquant, garantissant que nos applications restent agiles et réactives lors de l'exécution des tâches OCR. Parallèlement, nous explorons le domaine du multithreading, révélant le potentiel du parallélisme pour améliorer considérablement les performances des opérations de reconnaissance de texte. Rejoignez-nous pour une exploration approfondie de l'intégration de ces techniques, permettant aux développeurs d'améliorer l'efficacité et la réactivité de leurs applications utilisant la technologie OCR.

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

Voici comment démarrer en toute simplicité : utilisez la méthode ReadAsync d'IronTesseract pour effectuer une reconnaissance optique de caractères (OCR) sans bloquer votre thread principal. Idéal pour ajouter rapidement une fonctionnalité OCR réactive et non bloquante à votre application.

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

Comprendre le multithreading

Dans IronOCR, l'efficacité du traitement d'images et de la lecture OCR est améliorée par un multithreading transparent, éliminant ainsi le besoin pour les développeurs d'utiliser une API spécialisée. IronTesseract exploite automatiquement tous les threads disponibles sur plusieurs cœurs, optimisant ainsi les ressources système pour une exécution OCR rapide et réactive. Ce multithreading intrinsèque simplifie non seulement le développement, mais améliore aussi considérablement les performances, illustrant une intégration sophistiquée du parallélisme dans le flux de travail OCR.

Voici à quoi pourrait ressembler une 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);
};
Imports IronOcr
Imports System

Private ocr = New IronTesseract()

Using input = New OcrPdfInput("example.pdf")
	Dim result = ocr.Read(input)
	Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Comprendre la prise en charge asynchrone

Dans le domaine de la reconnaissance optique de caractères (OCR), la programmation asynchrone, ou " async ", joue un rôle essentiel dans l'optimisation des performances. La prise en charge asynchrone permet aux développeurs d'exécuter des tâches de reconnaissance optique de caractères (OCR) sans bloquer le thread principal, garantissant ainsi la réactivité de l'application. Imaginez le traitement de documents ou d'images volumineux pour la reconnaissance de texte : la prise en charge asynchrone permet au système de continuer à gérer d'autres tâches pendant l'exécution des opérations d'OCR.

Dans cette section, nous allons explorer l'intégration aisée du support asynchrone dans IronOCR, en présentant différentes façons de rendre vos services OCR non bloquants.

Utilisation d'un objet OcrReadTask

Lors de l'utilisation d'IronOCR, les objets OcrReadTask s'avèrent être un atout précieux pour améliorer le contrôle et la flexibilité de vos processus OCR. Ces objets encapsulent les opérations OCR, permettant aux développeurs de gérer efficacement les tâches de reconnaissance de texte. Cette section fournit des exemples d'utilisation des objets OcrReadTask dans votre flux de travail IronOCR, démontrant comment ils peuvent être utilisés pour lancer et optimiser les tâches OCR. Que vous orchestrations un traitement de documents complexe ou que vous affiniez la réactivité de votre application basée sur la reconnaissance optique de caractères (OCR), l'utilisation efficace des objets OcrReadTask contribue à maximiser les capacités d'IronOCR.

: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
}
Imports Microsoft.VisualBasic
Imports IronOcr

Private ocr As New IronTesseract()

Private largePdf As New OcrPdfInput("chapter1.pdf")

Private reader As Func(Of OcrResult) = Function()
	Return ocr.Read(largePdf)
End Function

Private readTask As New OcrReadTask(AddressOf 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
Dim result As OcrResult = Await Task.Run(Function() readTask.Result)

Console.Write($"##### OCR RESULTS ###### " & vbLf & " {result.Text}")

largePdf.Dispose()
readTask.Dispose()

'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'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

Utilisez des méthodes asynchrones

ReadAsync() offre un mécanisme simple et intuitif pour lancer des opérations OCR de manière asynchrone. Sans avoir besoin de recourir à un système de threads complexe ou à une gestion des tâches sophistiquée, les développeurs peuvent intégrer sans effort la reconnaissance optique de caractères asynchrone dans leurs applications. Cette méthode libère le thread principal des contraintes liées aux tâches de reconnaissance optique de caractères (OCR) bloquantes, garantissant ainsi la réactivité et l'agilité de l'application.

: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
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System
Imports System.Threading.Tasks

Private ocr As New IronTesseract()

Using largePdf As New OcrPdfInput("PDFs/example.pdf")
	Dim result = Await ocr.ReadAsync(largePdf)
	DoOtherTasks()
	Console.Write($"##### OCR RESULTS ###### " & $vbLf & " {result.Text}")
End Using

'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'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

Conclusion

En résumé, l'utilisation du multithreading dans IronOCR s'avère être un atout majeur pour l'optimisation des tâches d'OCR. Les capacités multithread natives d'IronOCR, combinées à des méthodes conviviales comme ReadAsync() , simplifient le traitement de grands volumes de données textuelles. Cette synergie garantit la réactivité et l'efficacité de vos applications, faisant d'IronOCR un outil formidable pour concevoir des solutions logicielles hautes performances dotées de capacités de reconnaissance de texte optimisées.

Questions Fréquemment Posées

Comment la programmation asynchrone améliore-t-elle les tâches OCR ?

La programmation asynchrone dans IronOCR permet aux tâches OCR de s'exécuter sans bloquer le thread principal de l'application. Cela assure que l'application reste réactive pendant que les opérations OCR sont traitées en arrière-plan.

Quel rôle joue le multithreading dans les processus OCR ?

Le multithreading dans IronOCR permet un traitement parallèle sur plusieurs cœurs, optimisant les ressources système et augmentant considérablement les performances des opérations de reconnaissance de texte.

Comment puis-je commencer à utiliser async et multithreading avec Tesseract ?

Pour commencer à utiliser async et multithreading avec Tesseract, téléchargez une bibliothèque C# qui prend en charge ces fonctionnalités. IronOCR s'intègre parfaitement, vous permettant de gérer efficacement les tâches OCR avec des méthodes comme ReadAsync().

À quoi sert un objet OcrReadTask ?

Un objet OcrReadTask dans IronOCR encapsule les opérations OCR, offrant aux développeurs un contrôle accru et une flexibilité pour gérer efficacement les tâches de reconnaissance de texte.

Comment puis-je effectuer des opérations OCR non bloquantes ?

Vous pouvez effectuer des opérations OCR non bloquantes dans IronOCR en utilisant la méthode ReadAsync(). Cette approche permet aux tâches OCR de s'exécuter de manière asynchrone, libérant le thread principal et gardant l'application réactive.

Est-il possible de traiter à la fois des PDFs et des images avec IronOCR ?

Oui, IronOCR peut traiter à la fois des PDFs et des images pour la reconnaissance de texte. Il utilise le multithreading et les fonctionnalités async pour gérer efficacement divers types de documents.

Ai-je besoin d'une API spécialisée pour implémenter le multithreading dans IronOCR ?

Non, vous n'avez pas besoin d'une API spécialisée. IronOCR gère automatiquement le multithreading, exploitant tous les cœurs disponibles pour optimiser les performances des tâches OCR.

Comment la méthode ReadAsync() profite-t-elle aux applications OCR ?

La méthode ReadAsync() dans IronOCR permet aux développeurs de lancer des opérations OCR de manière asynchrone, garantissant que les applications restent agiles et réactives même lors du traitement de grands volumes de données textuelles.

Quels sont les avantages d'utiliser async et le multithreading ensemble en OCR ?

Utiliser async et le multithreading ensemble dans IronOCR offre une combinaison puissante pour optimiser les tâches OCR. Async assure une exécution non bloquante, tandis que le multithreading exploite plusieurs cœurs pour un traitement plus rapide.

IronOCR peut-il gérer automatiquement les tâches OCR sur plusieurs cœurs ?

Oui, IronOCR utilise automatiquement tous les cœurs disponibles pour les tâches OCR, optimisant la vitesse de traitement et l'utilisation des ressources sans nécessiter une gestion explicite de la part du développeur.

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

.NET 10 est pris en charge par IronOCR via sa dernière version 2025.11. Vous pouvez installer la bibliothèque à l'aide de NuGet (Install-Package IronOcr) et exécuter des méthodes asynchrones comme 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,167,857 | Version: 2025.11 vient de sortir