How to use Async and Multithreading

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

In der sich ständig weiterentwickelnden Landschaft der Softwareentwicklung bleibt die effiziente Verarbeitung großer Datenmengen eine entscheidende Herausforderung. In diesem Artikel erkunden wir die dynamische Synergie zwischen Async-Unterstützung und Multithreading im Kontext von IronOCR und Tesseract. Asynchrones Programmieren führt ein nicht-blockierendes Paradigma ein, das sicherstellt, dass unsere Anwendungen während der Ausführung von OCR-Aufgaben agil und reaktionsfähig bleiben. Gleichzeitig tauchen wir in das Gebiet des Multithreading ein und enthüllen das Potenzial für Parallelität, um die Leistung von Texterkennungsoperationen erheblich zu steigern. Begleiten Sie uns, während wir die Integration dieser Techniken entmystifizieren und Entwicklern die Möglichkeit geben, die Effizienz und Reaktionsfähigkeit ihrer OCR-gestützten Anwendungen zu erhöhen.

  • als-Überschrift:2(Schnellstart: Verwenden Sie ReadAsync für müheloses asynchrones OCR)*

So einfach ist es, loszulegen: Verwenden Sie die ReadAsync-Methode von IronTesseract, um OCR durchzuführen, ohne Ihren Hauptthread zu blockieren. Perfekt, um Ihrer Anwendung schnell eine reaktionsfähige, nicht-blockierende OCR-Funktionalität hinzuzufügen.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. Copy and run this code snippet.

    var result = await new IronOcr.IronTesseract().ReadAsync("image.png");
  3. Deploy to test on your live environment

    Start using IronOCR in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Minimaler Workflow (5 Schritte)

  1. Laden Sie eine C#-Bibliothek herunter, die Tesseract mit Async und Multithreading unterstützt
  2. Verwenden Sie Multithreading, das von IronOCR verwaltet wird
  3. Bereiten Sie das PDF-Dokument und das Bild für das Lesen vor
  4. Verwenden Sie das OcrReadTask-Objekt, um die Vorteile von asynchroner Gleichzeitigkeit zu nutzen
  5. Verwenden Sie die ReadAsync-Methode für eine einfache Handhabung

Verständnis von Multithreading

In IronOCR wird die Effizienz der Bildverarbeitung und des OCR-Lesens durch nahtloses Multithreading verbessert, wodurch Entwickler keine spezialisierte API verwenden müssen. IronTesseract nutzt automatisch alle verfügbaren Threads über mehrere Kerne hinweg und optimiert Systemressourcen für eine schnelle und reaktionsschnelle OCR-Ausführung. Dieses inhärente Multithreading vereinfacht nicht nur die Entwicklung, sondern steigert auch die Leistung erheblich und zeigt eine ausgeklügelte Integration von Parallelität in den OCR-Workflow.

So könnte ein multithreaded Lesen in C# aussehen:

: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

Verständnis der Async-Unterstützung

Im Bereich der optischen Zeichenerkennung (OCR) spielt asynchrones Programmieren oder "Async" eine entscheidende Rolle bei der Optimierung der Leistung. Async-Unterstützung ermöglicht es Entwicklern, OCR-Aufgaben auszuführen, ohne den Hauptthread zu blockieren, was sicherstellt, dass die Anwendung reaktionsfähig bleibt. Stellen Sie sich vor, Sie verarbeiten große Dokumente oder Bilder zur Texterkennung – die Async-Unterstützung ermöglicht es dem System, weiterhin andere Aufgaben zu bearbeiten, während OCR-Operationen im Gange sind.

In diesem Abschnitt werden wir die mühelose Integration von Async-Unterstützung in IronOCR untersuchen und verschiedene Möglichkeiten vorstellen, Ihre OCR-Dienste nicht blockierend zu gestalten.

Verwendung eines OcrReadTask-Objekts

Bei der Arbeit mit IronOCR erweist sich die Verwendung von OcrReadTask-Objekten als wertvolles Werkzeug zur Verbesserung der Kontrolle und Flexibilität innerhalb Ihrer OCR-Prozesse. Diese Objekte kapseln OCR-Operationen und ermöglichen es Entwicklern, Texterkennungsaufgaben effizient zu verwalten. Dieser Abschnitt bietet Beispiele für die Verwendung von OcrReadTask-Objekten in Ihrem IronOCR-Workflow und zeigt, wie sie genutzt werden können, um OCR-Aufgaben zu initiieren und zu optimieren. Egal, ob Sie komplexe Dokumentenverarbeitungen orchestrieren oder die Reaktionsfähigkeit Ihrer OCR-gestützten Anwendung verfeinern, die effektive Nutzung von OcrReadTask-Objekten hilft, die Fähigkeiten von IronOCR zu maximieren.

: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

Verwendung von asynchronen Methoden

ReadAsync() bietet einen unkomplizierten und intuitiven Mechanismus, um OCR-Operationen asynchron zu initiieren. Ohne die Notwendigkeit komplizierter Thread-Verwaltung oder komplexem Task-Management können Entwickler mühelos asynchrones OCR in ihre Anwendungen integrieren. Diese Methode befreit den Hauptthread von der Belastung durch blockierende OCR-Aufgaben und stellt sicher, dass die Anwendung reaktionsfähig und agil bleibt.

: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

Abschluss

Zusammenfassend lässt sich sagen, dass das Multithreading in IronOCR sich als wegweisend für die Optimierung von OCR-Aufgaben erweist. Die nativen Multithreading-Fähigkeiten von IronOCR, kombiniert mit benutzerfreundlichen Methoden wie ReadAsync(), vereinfachen das Handling großer Datenmengen. Diese Synergie stellt sicher, dass Ihre Anwendungen reaktionsfähig und effizient bleiben, was IronOCR zu einem leistungsstarken Werkzeug für die Erstellung leistungsstarker Softwarelösungen mit optimierten Texterkennungsfunktionen macht.

Häufig gestellte Fragen

Wie verbessert asynchrone Programmierung die OCR-Aufgaben?

Asynchrone Programmierung in IronOCR ermöglicht es, dass OCR-Aufgaben ausgeführt werden, ohne den Hauptanwendungsthread zu blockieren. Dies stellt sicher, dass die Anwendung ansprechbar bleibt, während OCR-Operationen im Hintergrund verarbeitet werden.

Welche Rolle spielt Multithreading in den OCR-Prozessen?

Multithreading in IronOCR ermöglicht parallele Verarbeitung über mehrere Kerne, optimiert die Systemressourcen und steigert die Leistung der Texterkennungsoperationen erheblich.

Wie kann ich anfangen, Async und Multithreading mit Tesseract zu nutzen?

Um mit async und multithreading mit Tesseract zu beginnen, laden Sie eine C#-Bibliothek herunter, die diese Funktionen unterstützt. IronOCR integriert sich nahtlos und ermöglicht es Ihnen, OCR-Aufgaben effizient mit Methoden wie ReadAsync() zu verwalten.

Wofür wird ein OcrReadTask-Objekt verwendet?

Ein OcrReadTask-Objekt in IronOCR verkapselt OCR-Operationen und bietet Entwicklern erweiterte Kontrolle und Flexibilität, um Texterkennungsaufgaben effizient zu verwalten.

Wie kann ich nicht blockierende OCR-Operationen durchführen?

Sie können nicht blockierende OCR-Operationen in IronOCR durchführen, indem Sie die ReadAsync()-Methode verwenden. Dieser Ansatz ermöglicht es, OCR-Aufgaben asynchron auszuführen, den Hauptthread zu entlasten und die Anwendung ansprechbar zu halten.

Ist es möglich, sowohl PDFs als auch Bilder mit IronOCR zu verarbeiten?

Ja, IronOCR kann sowohl PDFs als auch Bilder für die Texterkennung verarbeiten. Es nutzt Multithreading- und Async-Fähigkeiten, um verschiedene Dokumenttypen effizient zu verarbeiten.

Benötige ich eine spezialisierte API, um Multithreading in IronOCR zu implementieren?

Nein, Sie benötigen keine spezialisierte API. IronOCR verwaltet das Multithreading automatisch und nutzt alle verfügbaren Kerne, um die Leistung der OCR-Aufgaben zu optimieren.

Wie profitieren OCR-Anwendungen von der ReadAsync()-Methode?

Die ReadAsync()-Methode in IronOCR ermöglicht es Entwicklern, OCR-Operationen asynchron zu starten, was sicherstellt, dass Anwendungen agil und reaktionsschnell bleiben, auch wenn große Textdatenmengen verarbeitet werden.

Welche Vorteile bietet die gleichzeitige Verwendung von Async und Multithreading in der OCR?

Die gleichzeitige Verwendung von Async und Multithreading in IronOCR bietet eine leistungsstarke Kombination zur Optimierung von OCR-Aufgaben. Async stellt eine blockierungsfreie Ausführung sicher, während Multithreading mehrere Kerne für schnellere Verarbeitung nutzt.

Kann IronOCR OCR-Aufgaben automatisch auf mehreren Kernen ausführen?

Ja, IronOCR nutzt automatisch alle verfügbaren Kerne für OCR-Aufgaben, um die Verarbeitungsgeschwindigkeit und Ressourcennutzung zu optimieren, ohne dass eine explizite Verwaltung durch den Entwickler erforderlich ist.

Ist IronOCR vollständig mit .NET 10 kompatibel?

.NET 10 wird von IronOCR ab der neuesten Version 2025.11 unterstützt. Sie können die Bibliothek über NuGet installieren (Install-Package IronOcr) und asynchrone Methoden wie ReadAsync() unter .NET 10 ohne spezielle Konfiguration ausführen.

Chipego
Software Ingenieur
Chipego hat eine natürliche Begabung fürs Zuhören, die ihm hilft, Kundenprobleme zu verstehen und intelligente Lösungen anzubieten. Er kam 2023 zum Iron Software-Team, nachdem er einen Bachelor of Science in Informationstechnologie studiert hatte. IronPDF und IronOCR sind die beiden Produkte, auf die sich Chipego konzentriert hat, aber ...
Weiterlesen
Bereit anzufangen?
Nuget Downloads 5,044,537 | Version: 2025.11 gerade veröffentlicht