Verwendung von Async und Multithread

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

von Hairil Hasyimi Bin Omar

Die Begriffe Asynchron und Multithreading operationen werden oft verwechselt. Beide Methoden zielen darauf ab, die Programmleistung und -effizienz zu verbessern, indem die Nutzung der Systemressourcen optimiert und die Laufzeit verkürzt wird. Sie unterscheiden sich jedoch in ihrem Ansatz, ihren Mechanismen und den beabsichtigten Anwendungsfällen. IronBarcode unterstützt beide Ansätze. In diesem Artikel werden die Unterschiede zwischen ihnen und ihre Implementierung mit IronBarcode erläutert.


C# NuGet-Bibliothek für

Installieren mit NuGet

Install-Package BarCode
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

C# NuGet-Bibliothek für

Installieren mit NuGet

Install-Package BarCode
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

Fangen Sie noch heute an, IronPDF in Ihrem Projekt mit einer kostenlosen Testversion zu verwenden.

Erster Schritt:
green arrow pointer

Schau dir an IronBarcode an Nuget Für schnelle Installation und Bereitstellung. Mit über 8 Millionen Downloads verwandelt es mit C#.

C# NuGet-Bibliothek für nuget.org/packages/BarCode/
Install-Package BarCode

Erwägen Sie die Installation der IronBarcode DLL direkt. Laden Sie es herunter und installieren Sie es manuell für Ihr Projekt oder die GAC-Form: IronBarCode.zip

Manuelle Installation in Ihr Projekt

DLL herunterladen
## Barcodes asynchron lesen Beispiel Zunächst sollten wir verstehen, was asynchrones Lesen ist und welche Vorteile es für die Nutzer hat. Asynchrones Lesen ermöglicht lange oder blockierende Operationen, ohne die Ausführung des Hauptthreads zu blockieren. In C# können Benutzer die Schlüsselwörter **async** und **await** mit Methoden verwenden, die asynchrone Funktionen unterstützen. Dadurch werden keine weiteren Threads erstellt, sondern der aktuelle Thread wird freigegeben. Der Haupt-Thread ist zwar immer noch notwendig, um Aufgaben zu initiieren und zu verwalten, aber er muss nicht ausschließlich einer einzigen Aufgabe gewidmet sein. Der Hauptthread wird aufgerufen, wenn die asynchrone Methode seine Beteiligung erfordert, so dass er andere Aufgaben erledigen kann, wenn er nicht benötigt wird, z. B. E/A-gebundene Aufgaben wie das Lesen/Schreiben von Dateien oder Netzwerkanforderungen. Nehmen wir das Lesen von Strichcodes als Beispiel. In diesem Szenario wären die folgenden Schritte erforderlich: - Lesen der Datei - Anwendung der Leseoptionen - Dekodierung des Barcodes Während des Schritts "Lesen der Datei" kann die Hauptaufgabe freigegeben werden. Verwenden Sie die Methoden `ReadAsync` und `ReadPdfAsync`, um Barcodes asynchron für Bilder bzw. PDF-Dokumente zu lesen. ```cs :path=/static-assets/barcode/content-code-examples/how-to/async-multithread-async.cs ``` In dem obigen Codeausschnitt haben wir eine Liste von Bildpfaden instanziiert, die von IronBarcode asynchron gelesen werden sollen. Um die Bilder zu lesen, können Sie die Methode "ReadAsync" der Klasse **BarcodeReader** verwenden. Die Benutzer können dann die Bildpfade und die Leseoptionen angeben. Diese Methode für asynchrone Operationen steht auch für das Lesen von Barcodes in PDF-Dokumenten zur Verfügung, bekannt als `ReadPdfAsync`, die Teil der gleichen Klasse ist. ## Lesen von Barcodes in Multithread-Beispielen Im Unterschied zu asynchronen Operationen ermöglicht Multithreading die gleichzeitige Ausführung eines einzelnen Prozesses in mehreren Threads. Das bedeutet, dass ein Prozess nicht sequentiell in einem einzigen Thread ausgeführt wird, sondern dass die Aufgaben auf mehrere Threads verteilt werden, was eine gleichzeitige Ausführung ermöglicht. Damit Multithreading funktioniert, muss ein Rechner jedoch über mehrere CPU-Kerne verfügen, da diese Kerne zur unabhängigen Ausführung der Threads verwendet werden. Ähnlich wie bei asynchronen Operationen zielt das Multithreading darauf ab, die Leistung und Reaktionsfähigkeit von Anwendungen zu verbessern. Aktivieren Sie in IronBarcode das Multithreading, indem Sie die Eigenschaft **Multithreaded** setzen und die maximale Anzahl der Kerne für die gleichzeitige Ausführung mit **MaxParallelThreads** in BarcodeReaderOptions angeben. Der Standardwert für **MaxParallelThreads** ist 4, der je nach den verfügbaren CPU-Kernen angepasst werden kann.
Bitte beachten Sie
So finden Sie die verfügbaren Kerne: Task-Manager -> Registerkarte Leistung -> Klicken Sie auf CPU. das Feld "Kerne" zeigt die Anzahl an.
```cs :path=/static-assets/barcode/content-code-examples/how-to/async-multithread-multithread.cs ``` ### Leistungsvergleich Lesen wir nun die beiden Bilder unten und vergleichen die Lesezeit von normalen, asynchronen und Multithread-Operationen. #### Beispielbild
Bild 1
Bild 2
Normal lesen Asynchrones Lesen Multithreading-Lesen (4 Kerne)
01.75 Sekunden 01.67 Sekunde 01.17 Sekunde
Aus der Vergleichstabelle ist ersichtlich, dass die Leistung deutlich zunimmt, wenn asynchrones und multithreaded Lesen implementiert ist. Diese beiden Vorgänge dienen jedoch unterschiedlichen Zwecken und Ansätzen. Daher müssen die Benutzer entscheiden, welcher Ansatz für die von ihnen zu erstellende Anwendung besser geeignet ist. Schließlich kann es Situationen geben, in denen mehrere Strichcodes auf einem einzigen Dokument vorhanden sind. Weitere Informationen erhalten Sie auf der[Mehrere Barcodes lesen](/csharp/barcode/how-to/read-multiple-barcodes/) leitfaden.

Hairil Hasyimi Bin Omar

Software-Ingenieur

Wie alle großartigen Ingenieure ist Hairil ein eifriger Lerner. Er verfeinert seine Kenntnisse in C#, Python und Java und nutzt dieses Wissen, um den Teammitgliedern von Iron Software einen Mehrwert zu bieten. Hairil kam von der Universiti Teknologi MARA in Malaysia zum Iron Software-Team, wo er einen Bachelor-Abschluss in Chemie- und Verfahrenstechnik erwarb.