多线程生成
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文件。 點擊這裡查看使用指南,包括範例、範例代碼和文件。