多线程生成

IronPDF 提供線程安全的 PDF 生成,並在使用 ChromePdfRenderer 類別生成 PDF 文件時支持多線程處理,如本例所示。 這樣,您可以同時處理任何大小的 PDF 生成任務或批量 PDF 生成任務,而不必擔心遇到諸如執行緒阻塞之類的問題。

多執行緒 PDF 生成步驟

  • var renderer = new ChromePdfRenderer();
  • var htmlStrings = new List<string>() { "<h1>Html#1</h1>", "<h1>Html#2</h1>", "<h1>Html#3</h1>" };
  • Task<PdfDocument[]> task = Task.WhenAll(htmlStrings.Select(html => renderer.RenderHtmlAsPdfAsync(html)));
  • List<PdfDocument> pdfList = task.Result.ToList();

    在多线程環境中生成 PDF 文件的第一步是創建一個新的ChromePdfRenderer實例。 這讓我們能夠使用IronPDF強大的渲染引擎,可以製作出像素完美的PDF文件。 然後,我們將創建一個新的字串物件的列表,稱為htmlStrings。 這個列表充滿了我們將在多執行緒環境中用來生成 PDF 文件的 HTML 字串。

    接下來,我們需要使用非同步編程來同時渲染所有的 HTML 字串為 PDF 文件。 htmlStrings.Select(html => renderer.RenderHtmlAsPdfAsync(html)) 迭代我們的 HTML 字串列表,並對每個找到的字串調用通過 renderer 訪問的 RenderHtmlAsPdfAsync 方法,將其轉換為 PDF 文件。 Task.WhenAll() 用於將異步任務累積成一個單一任務,該任務會在所有單獨的 RenderHtmlAsPdfAsync 呼叫完成後結束。 然後,它將返回一個新的PdfDocument物件陣列。

    最後,我們將檢索我們 PDF 生成的結果。 task.Result 會阻塞當前執行緒,直到所有非同步 PDF 渲染任務完成,並檢索生成的 PdfDocument 對象陣列。 然後,ToList()會將PdfDocument物件的陣列轉換為pdfList清單,以便更輕鬆地進一步操作PDF文件。 點擊這裡查看使用指南,包括範例、範例代碼和文件。