IRONSOFTWAREHOME

PDF-Erzeugung mit Async und Multithreading in C#

Chipego
Chipego Kalinda
Updated: 17. September 2026

IronPDF ermöglicht eine hochleistungsfähige PDF-Generierung in C# unter Verwendung von asynchronen Operationen und Multithreading, wodurch die Stapelverarbeitungszeit im Vergleich zu synchronen Methoden für komplexe HTML-Rendering-Szenarien um bis zu 65 % reduziert wird.

Schnellstart: HTML asynchron mit IronPDF in PDF konvertieren

Beginnen Sie mit der asynchronen PDF-Generierung mit IronPDF in nur wenigen Zeilen Code.

Mit der RenderHtmlAsPdfAsync-Methode können Sie HTML-Inhalte effizient in PDF konvertieren und so die Leistung Ihrer Anwendung optimieren. Dieser Leitfaden zeigt, wie asynchrone Operationen für die hochleistungsfähige PDF-Erzeugung genutzt werden können, die sich ideal für die Stapelverarbeitung und Multi-Thread-Umgebungen eignet.

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var pdf = await IronPdf.ChromePdfRenderer.RenderHtmlAsPdfAsync("<h1>Hello World!</h1>");
    C#
  3. 3Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronPDF in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
    arrow pointer

Wie implementiere ich asynchrone PDF-Erzeugung in C#?

IronPDF unterstützt asynchrone Operationen mithilfe von Rendering-Methoden wie RenderHtmlAsPdfAsync vollständig. Die async-Implementierung in IronPDF nutzt das Task-based Asynchronous Pattern (TAP), um nicht-blockierende PDF-Erzeugungsvorgänge zu ermöglichen. Dieser Ansatz kommt dem Rendering komplexer HTML-Inhalte oder der gleichzeitigen Verarbeitung von PDF-Anfragen zugute. Für eine vollständige Methode-Referenz siehe die Dokumentation zu den Rendering-Methoden.

Asynchrone PDF-Generierung verhindert das Einfrieren der Benutzeroberfläche in Desktop-Anwendungen und verbessert den Anfragedurchsatz in Web-Anwendungen. Durch die Verwendung der Muster await kann Ihre Anwendung andere Vorgänge ausführen, während sie auf den Abschluss der PDF-Rendering-Vorgänge wartet, was die Reaktionsgeschwindigkeit und das Benutzererlebnis erheblich verbessert.

Warum sollte ich asynchrone Methoden für die PDF-Generierung verwenden?

Async-Methoden bieten entscheidende Vorteile für PDF-Generierungs-Workflows. Sie erhalten die Reaktionsfähigkeit von Anwendungen bei ressourcenintensiven Operationen aufrecht, ermöglichen eine bessere Ressourcennutzung auf Multicore-Prozessoren und verbessern die Skalierbarkeit in Serverumgebungen. Bei der Handhabung von komplexen HTML-zu-PDF-Konvertierungen verhindern asynchrone Operationen Timeout-Probleme und verbessern die Benutzerfreundlichkeit.

using IronPdf;
using System.Threading.Tasks;

// Instantiate ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

string[] htmlStrings = {"<h1>Html 1</h1>", "<h1>Html 2</h1>", "<h1>Html 3</h1>"};

// Create an array to store the tasks for rendering
var renderingTasks = new Task<PdfDocument>[htmlStrings.Length];

for (int i = 0; i < htmlStrings.Length; i++)
{
    int index = i; // Capturing the loop variable
    renderingTasks[i] = Task.Run(async () =>
    {
        // Render HTML to PDF
        return await renderer.RenderHtmlAsPdfAsync(htmlStrings[index]);
    });
}

// Wait for all rendering tasks to complete
// await Task.WhenAll(renderingTasks);

Was sind gängige Muster für die Stapelverarbeitung?

Die Stapelverarbeitung von PDFs erfordert eine sorgfältige Berücksichtigung von Speicherverbrauch und Leistung. Zu den bewährten Mustern gehören die Verwendung von Task.WhenAll für die parallele Ausführung mehrerer PDF-Generierungen, die Implementierung von Produzenten-Konsumenten-Mustern mit Kanälen für große Stapel sowie die Nutzung von Beispielen für parallele Verarbeitung aus der IronPDF-Dokumentation.

// Batch processing with progress tracking
public async Task<List<PdfDocument>> ProcessBatchAsync(List<string> htmlContents, IProgress<int> progress)
{
    var renderer = new ChromePdfRenderer();
    var results = new List<PdfDocument>();
    var completed = 0;
    
    var tasks = htmlContents.Select(async html => {
        var pdf = await renderer.RenderHtmlAsPdfAsync(html);
        Interlocked.Increment(ref completed);
        progress?.Report(completed);
        return pdf;
    });
    
    results.AddRange(await Task.WhenAll(tasks));
    return results;
}

Wie gehe ich mit Fehlern in asynchronen PDF-Operationen um?

Die Fehlerbehandlung in asynchronen PDF-Operationen erfordert umfassende Strategien für das Ausnahmemanagement. Verwenden Sie catch-Blöcke innerhalb von asynchronen Methoden, implementieren Sie eine Wiederholungslogik für vorübergehende Fehler und erwägen Sie die Verwendung von Polly für erweiterte Wiederholungsrichtlinien. Für eine detaillierte Leistungsproblembehebung bietet IronPDF umfangreiche Protokollierungsfunktionen.

public async Task<PdfDocument> RenderWithRetryAsync(string html, int maxRetries = 3)
{
    var renderer = new ChromePdfRenderer();
    
    for (int i = 0; i < maxRetries; i++)
    {
        try
        {
            return await renderer.RenderHtmlAsPdfAsync(html);
        }
        catch (Exception ex) when (i < maxRetries - 1)
        {
            // Log the exception
            await Task.Delay(TimeSpan.FromSeconds(Math.Pow(2, i))); // Exponential backoff
        }
    }
    
    throw new InvalidOperationException("Failed to render PDF after maximum retries");
}

Wie kann ich Multi-Threading für die PDF-Generierung nutzen?

IronPDF ist threadsicher und unterstützt Multithreading bei Verwendung der ChromePdfRenderer-Rendering-Engine. Beachten Sie, dass Multithreading auf macOS-Rechnern eingeschränkt ist. Die Chrome-Rendering-Engine bietet hervorragende Thread-Sicherheit und Leistungsmerkmale für gleichzeitige Operationen.

Das Parallel.ForEach-Muster eignet sich gut für die Stapelverarbeitung von PDFs und ermöglicht es Ihnen, alle verfügbaren CPU-Kerne effektiv zu nutzen. Umfassende Beispiele für die Multi-Thread-Erzeugung finden Sie in der IronPDF-Dokumentation.

Wann sollte ich Multi-Threading gegenüber Async wählen?

Multi-Threading ist ideal für CPU-gebundene Operationen, bei denen Sie mehrere PDFs gleichzeitig mit ausreichenden Systemressourcen verarbeiten müssen. Entscheiden Sie sich für Multi-Threading, wenn Sie große Stapel von PDFs auf Multicore-Systemen verarbeiten, wenn jede PDF-Generierung unabhängig ist und wenn die Speichernutzung kontrolliert werden kann. Async ist besser für E/A-gebundene Operationen und die Aufrechterhaltung der Reaktionsfähigkeit von Anwendungen.

Was sind die Überlegungen zur Thread-Sicherheit?

IronPDFs ChromePdfRenderer ist als threadsicher konzipiert, es gelten jedoch bestimmte Einschränkungen. Erstellen Sie bei der Verwendung benutzerdefinierter Einstellungen separate Renderer-Instanzen für jeden Thread, vermeiden Sie die gemeinsame Nutzung von PdfDocument-Instanzen zwischen Threads ohne Synchronisation und überwachen Sie den Speicherverbrauch bei der gleichzeitigen Verarbeitung großer Dokumente. Die Installationsübersicht bietet zusätzliche Details zur Konfiguration von IronPDF für optimale Thread-Sicherheit.

// Thread-safe PDF generation with custom settings per thread
public void ProcessPdfsInParallel(List<string> htmlContents)
{
    Parallel.ForEach(htmlContents, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount }, 
        html =>
        {
            // Create a new renderer instance for each thread
            var renderer = new ChromePdfRenderer
            {
                RenderingOptions = new ChromePdfRenderOptions
                {
                    MarginTop = 10,
                    MarginBottom = 10,
                    PaperSize = IronPdf.Rendering.PdfPaperSize.A4
                }
            };
            
            var pdf = renderer.RenderHtmlAsPdf(html);
            pdf.SaveAs($"output_{Thread.CurrentThread.ManagedThreadId}_{DateTime.Now.Ticks}.pdf");
        });
}

Wie viele gleichzeitige Threads sollte ich verwenden?

Die optimale Anzahl gleichzeitiger Threads hängt von den CPU-Kernen, dem verfügbaren Speicher und der PDF-Komplexität ab. Zu den allgemeinen Richtlinien gehören die Verwendung von Environment.ProcessorCount für CPU-gebundene Operationen, die Begrenzung auf 2–4 Threads bei speicherintensiven PDFs sowie die Überwachung der Systemressourcen, um die optimale Konfiguration zu ermitteln. Die async-Beispiele demonstrieren verschiedene Threading-Strategien.

Meine Lieblingsbibliothek dieser Art ist IronPDF. Es ermöglicht eine schnelle und effiziente Bearbeitung von PDF-Dateien. Es verfügt auch über viele wertvolle Funktionen, wie das Exportieren in das PDF/A-Format und das digitale Signieren von PDF-Dokumenten.

Milan Jovanovic

Microsoft MVP

Fallstudie ansehen

IronOCR bedeutet, dass wir jährlich 40.000 $ durch manuelle Verarbeitung einsparen können, während die Produktivität gesteigert wird und Ressourcen für wichtige Aufgaben freigesetzt werden. Ich würde es sehr empfehlen.

Brent Matzelle

Technischer Leiter, OPYN

Fallstudie ansehen

Die Iron Suite spielt eine entscheidende Rolle in unseren Operationen. Diese Werkzeuge erhöhen die Effizienz im gesamten Unternehmen, einschließlich der Erstellung von Grundrissen und der Verbesserung des Bestandsmanagements.

David Jones

Leitender Software-Ingenieur, Agorus Build

Fallstudie ansehen

Welche Leistungsverbesserungen kann ich erwarten?

Ein Vergleich zeigt erhebliche Leistungsunterschiede zwischen den Rendering-Ansätzen. Mit der Klasse WaitFor wird eine Verzögerung von 5 Sekunden beim Rendern hinzugefügt, um komplexes HTML-Rendering zu simulieren. Nachfolgend finden Sie eine Vergleichstabelle der Leistung bei Verwendung der verschiedenen oben beschriebenen Techniken.

Warum ist Async besser als Synchronous?

Normales RenderingAsynchrones RenderingMultithreading-Rendering
15.75 Sekunden05.59 Sekunden05.68 Sekunden

Async-Operationen zeichnen sich dadurch aus, dass sie eine effiziente Verwaltung von Thread-Pool-Ressourcen ermöglichen, das Blockieren des Hauptthreads verhindern und eine bessere CPU-Auslastung bei E/A-Operationen ermöglichen. Die Leistungsverbesserung ergibt sich daraus, dass mehrere Rendering-Vorgänge gleichzeitig gestartet werden, anstatt darauf zu warten, dass sie nacheinander abgeschlossen werden.

Wie kann ich die Leistung in meiner Anwendung messen?

Die Messung der Leistung der PDF-Generierung erfordert ein angemessenes Benchmarking und Monitoring. Verwenden Sie System.Diagnostics.Stopwatch für genaue Zeitmessungen, implementieren Sie benutzerdefinierte Leistungsindikatoren für die Produktionsüberwachung und nutzen Sie Application Insights oder ähnliche APM-Tools. Ziehen Sie in Erwägung, die Schnellstartanleitung als Grundlage für Leistungstests zu verwenden.

public async Task<PerformanceMetrics> MeasurePerformanceAsync(string html, int iterations)
{
    var metrics = new PerformanceMetrics();
    var renderer = new ChromePdfRenderer();
    var stopwatch = new Stopwatch();
    
    // Warm-up run
    await renderer.RenderHtmlAsPdfAsync(html);
    
    for (int i = 0; i < iterations; i++)
    {
        stopwatch.Restart();
        await renderer.RenderHtmlAsPdfAsync(html);
        stopwatch.Stop();
        
        metrics.AddMeasurement(stopwatch.ElapsedMilliseconds);
    }
    
    return metrics;
}

Welche Faktoren beeinflussen die Geschwindigkeit der PDF-Erstellung?

Mehrere Faktoren beeinflussen die Leistung der PDF-Generierung. Die Komplexität von HTML, einschließlich JavaScript-Ausführung und CSS-Rendering, wirkt sich direkt auf die Verarbeitungszeit aus. Das Laden externer Ressourcen, wie Bilder und Schriftarten, kann zu Verzögerungen führen. Systemressourcen wie CPU, Speicher und Festplatten-E/A spielen eine entscheidende Rolle. Die IronPDF-Konfiguration, einschließlich der Rendering-Optionen und Engine-Einstellungen, beeinflusst ebenfalls die Geschwindigkeit. Wenn Sie diese Faktoren verstehen, können Sie Ihren PDF-Generierungs-Workflow für maximale Effizienz optimieren.

Für komplexe Szenarien mit umfangreichem JavaScript oder verzögertem Rendering sollten Sie die Verwendung von WaitFor-Mechanismen in Betracht ziehen, um ein vollständiges Rendering der Seite vor der PDF-Generierung sicherzustellen. Dieser Ansatz garantiert eine genaue Ausgabe bei gleichzeitiger Beibehaltung vorhersehbarer Leistungsmerkmale.

Häufig gestellte Fragen

Welche Leistungsverbesserung kann ich bei der asynchronen PDF-Generierung erwarten?

Die asynchronen Operationen und das Multithreading von IronPDF können die Stapelverarbeitungszeit im Vergleich zu synchronen Methoden um bis zu 65 % reduzieren, insbesondere beim Rendern komplexer HTML-Inhalte. Der tatsächliche Leistungsgewinn hängt von Faktoren wie der Komplexität von HTML, den Systemressourcen und der Anzahl der gleichzeitigen Operationen ab.

Was ist die einfachste Methode, um HTML asynchron in PDF zu konvertieren?

Der einfachste Weg ist die Verwendung der RenderHtmlAsPdfAsync-Methode von IronPDF. Mit nur einer Zeile Code: `var pdf = await IronPdf.ChromePdfRenderer.RenderHtmlAsPdfAsync("Hello World!");` können Sie HTML-Inhalte effizient in PDF konvertieren und dabei die Reaktionsfähigkeit der Anwendung beibehalten.

Warum sollte ich asynchrone Methoden anstelle von synchroner PDF-Erzeugung verwenden?

Async-Methoden in IronPDF verhindern das Einfrieren der Benutzeroberfläche in Desktop-Anwendungen, verbessern den Anfragedurchsatz in Web-Anwendungen, ermöglichen eine bessere Ressourcennutzung auf Multicore-Prozessoren und erhöhen die Skalierbarkeit in Server-Umgebungen. Sie sind besonders vorteilhaft bei der Verarbeitung komplexer HTML-zu-PDF-Konvertierungen oder der gleichzeitigen Verarbeitung mehrerer PDF-Anfragen.

Welches asynchrone Muster verwendet die Bibliothek für PDF-Operationen?

IronPDF implementiert das Task-based Asynchronous Pattern (TAP) für seine asynchronen Operationen, einschließlich Methoden wie RenderHtmlAsPdfAsync. Dieses Muster ermöglicht nicht-blockierende PDF-Generierungsvorgänge und lässt sich nahtlos in die async/await-Schlüsselwörter von C# integrieren.

Wie kann ich mehrere PDF-Dateien parallel verarbeiten, um die Leistung zu verbessern?

IronPDF unterstützt die Stapelverarbeitung mit Mustern wie Task.WhenAll für die parallele Ausführung mehrerer PDF-Generationen, Parallel.ForEach für Multithreading bei der PDF-Verarbeitung und Producer-Consumer-Muster mit Kanälen für große Stapel. Diese Ansätze optimieren die Ressourcennutzung und reduzieren die Gesamtverarbeitungszeit erheblich.

What are common error handling strategies in async PDF operations with IronPDF?

Common strategies include using `try`-`catch` blocks within async methods, implementing retry logic with tools like `Polly`, and leveraging IronPDF's logging capabilities for performance troubleshooting.

How can I handle complex HTML content in async PDF generation?

For complex HTML content, use IronPDF's async methods to prevent timeout issues and improve user experience. Consider employing mechanisms like `WaitFor` to ensure full rendering before PDF conversion.

How do I measure PDF generation performance in IronPDF?

Measure performance by using `System.Diagnostics.Stopwatch` for timing, implementing custom performance counters, and leveraging application insights. The Quickstart examples can serve as a baseline for performance testing.

What factors affect the speed of PDF generation with IronPDF?

Factors include HTML complexity, JavaScript execution, CSS rendering, external resource loading, and system resources like CPU and memory. IronPDF configuration and engine settings also play a crucial role.

Bereit anzufangen?

Nuget Downloads 21,105,021Version:2026.9gerade veröffentlicht

Holen Sie sich Ihre KOSTENLOSE

30-Tage-Testlizenz sofort.

bullet_checkedKeine Kreditkarte oder Kontoerstellung erforderlich
bullet_testTesten Sie in der Produktion
ohne Wasserzeichen
bullet_calendar30 Tage voll
funktionsfähiges Produkt
bullet_support24/5 technischer
Support während der Testphase
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.
C# NuGet-Bibliothek für PDF
Installation mit NuGet

Version: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Rechtsklick auf Referenzen, NuGet-Pakete verwalten
  2. Wählen Sie Durchsuchen und suchen Sie nach 'IronPDF'
  3. Paket auswählen und installieren
C# PDF DLL
Download DLL

Version: 2026.9

oder laden Sie den Windows-Installer hier herunter.

  1. Laden Sie IronPDF herunter und entpacken Sie es in ein Verzeichnis wie ~/Libs innerhalb Ihres Lösungsverzeichnisses
  2. Im Visual Studio-Projektmappen-Explorer klicken Sie mit der rechten Maustaste auf Referenzen. Wählen Sie Durchsuchen, "IronPDF.dll"

Lizenzen ab 749 $

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

OR
bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.
C# NuGet-Bibliothek für PDF
Installation mit NuGet

Version: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Rechtsklick auf Referenzen, NuGet-Pakete verwalten
  2. Wählen Sie Durchsuchen und suchen Sie nach 'IronPDF'
  3. Paket auswählen und installieren
C# PDF DLL
Download DLL

Version: 2026.9

oder laden Sie den Windows-Installer hier herunter.

  1. Laden Sie IronPDF herunter und entpacken Sie es in ein Verzeichnis wie ~/Libs innerhalb Ihres Lösungsverzeichnisses
  2. Im Visual Studio-Projektmappen-Explorer klicken Sie mit der rechten Maustaste auf Referenzen. Wählen Sie Durchsuchen, "IronPDF.dll"

Lizenzen ab 749 $