如何在 C# | IronOCR 中使用異步和多執行緒

C# IronOCR 的同步與多執行緒支援。

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

IronOCR 可在所有 CPU 核心上自動處理多執行緒,並提供類似 ReadAsync() 之類的 async 方法來執行 OCR,而不會阻塞您的主執行緒,以確保在處理大型文件時,應用程式仍能反應迅速。

介紹

<! -- 引言實作示意圖 --> <!--說明:說明程式碼概念的圖表或截圖 -->

有效率地處理大量的文字資料,對 OCR 作業而言,需要兼具精確度與速度。 本文涵蓋 IronOCR 和 Tesseract 的同步支援和多執行緒。 異步程式設計可讓 OCR 執行不阻塞,讓應用程式在執行文字辨識任務時保持反應迅速。 多執行緒提供平行性,大幅提升 OCR 效能。 這些技術可協助開發人員提高 OCR 驅動應用程式的效率和回應能力。

快速入門:使用 ReadAsync 輕鬆實現非同步 OCR

使用 IronTesseract 的 ReadAsync 方法來執行 OCR,而不會阻塞您的主線程。 此功能可快速為您的應用程式加入反應迅速、無阻塞的 OCR 功能。 在處理 PDF 文件或同時處理多個影像檔案時,效果特別好。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronOCR

    PM > Install-Package IronOcr

  2. 複製並運行這段程式碼。

    var result = await new IronOcr.IronTesseract().ReadAsync("image.png");
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronOCR,免費試用!
    arrow pointer

IronOCR 中的多執行緒如何運作? 多線程工作如何在 IronPDF 中進行? <!--說明:顯示逐步過程的截圖 --> IronOCR 透過無縫多執行緒提升影像處理與 OCR 讀取效率,開發人員不需要專門的 API。 [`IronTesseract`](https://ironsoftware.com/csharp/ocr/how-to/iron-tesseract/) 自動利用多核心的所有可用線程,最佳化系統資源以快速執行 OCR。 此內建的多執行緒可將平行性直接整合至 OCR 工作流程中,進而簡化開發工作並大幅提升效能。 該函式庫的[多執行緒 Tesseract 實作](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multithreading-for-speed/)提供了這些主要優點: - **自動 CPU 核心利用率**:IronOCR 可偵測並使用所有可用核心,無須手動設定 - **線程安全作業**:所有的 OCR 作業在預設情況下都是設計為線程安全的 - **最佳化資源管理**:記憶體和處理資源在線程間有效分配 - **可擴充的效能**:處理時間會隨著可用核心數按比例減少 以下是一個 C# 語言的多執行緒讀取範例: ```csharp :path=/static-assets/ocr/content-code-examples/how-to/async-simple-multithreading.cs ``` 對於需要[快速 OCR 設定](https://ironsoftware.com/csharp/ocr/examples/tune-tesseract-for-speed-in-dotnet/)的進階方案,開發人員可以微調多執行緒行為,以符合特定的效能需求,同時維持精確度。

如何在 IronOCR 中使用異步支援? 。 <!--說明:顯示逐步過程的截圖 --> 異步程式設計可讓開發人員在不阻塞主線程的情況下執行 OCR 任務,從而優化 OCR 的效能。 這可讓應用程式在處理大型文件或影像以進行文字辨識時保持反應迅速。 Async 支援可讓系統在背景執行 OCR 作業時處理其他任務。 在使用者介面中實作 [OCR 進度追蹤](https://ironsoftware.com/csharp/ocr/examples/progress-tracking/)時,這項能力至關重要。 本節涵蓋 IronOCR 中的 async 支援整合,示範讓 OCR 服務非阻塞的不同方法。 IronOCR 的 async 功能可確保桌面應用程式在執行 OCR 作業時的回應能力,以及處理多個並發 OCR 請求的 Web 服務,都能達到最佳效能。

何時應該使用 OcrReadTask 物件? `OcrReadTask` 物件增強了 IronOCR 在 OCR 流程中的控制和靈活性。 這些物件封裝了 OCR 作業,可有效管理文字辨識任務。 本節示範在 IronOCR 工作流程中使用 `OcrReadTask` 物件,並說明這些物件如何啟動和優化 OCR 任務。 `OcrReadTask` 物件有助於在協調複雜的文件處理或微調應用程式反應能力時,將 IronOCR 的功能發揮到極致。 `OcrReadTask` 物件在下列情況下運作最佳: - 您需要對任務執行進行細粒度控制 - 針對可取消的作業實作 [abort token 功能](https://ironsoftware.com/csharp/ocr/examples/abort-token/)。 - 管理具有不同優先順序的多個並行 OCR 作業 - 與自訂任務排程器或工作流程引擎整合 ```csharp :path=/static-assets/ocr/content-code-examples/how-to/async-ocrtask.cs ```

如何使用 ReadAsync 方法? `ReadAsync()` 提供了異步啟動 OCR 作業的直接機制。 不需要複雜的線程或任務管理,開發人員就可以將異步 OCR 整合到他們的應用程式中。 此方法可防止主線程在執行 OCR 任務時阻塞,確保應用程式保持反應迅速。 `ReadAsync`方法適用於以下情況: - 需要維持 UI 反應能力的桌面應用程式 - 處理多個同步 OCR 請求的網路應用程式 - [進度追蹤](https://ironsoftware.com/csharp/ocr/how-to/progress-tracking/)是必要的批次處理情境 - 與 .NET 應用程式中的現代 async/await 模式整合 ```csharp :path=/static-assets/ocr/content-code-examples/how-to/async-read-async.cs ```

為什麼要使用 IronOCR 的同步和多執行緒? IronOCR 結合了 async 支援和多執行緒,為現代應用程式開發提供了許多好處: **效能優勢:** - **提高吞吐量**:同時處理多個文件而不會阻塞 - **更佳的資源利用率**:最大化所有可用核心的 CPU 使用率 - **降低延遲**:立即開始處理,無需等待先前的作業完成 - **可擴充的架構**:無需改變架構即可處理不斷增加的工作負載 **開發效益:** - **簡化程式碼**:無需手動管理線程 - IronOCR 可處理複雜的問題 - **現代模式**:在 [Tesseract 5 for .NET](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-5/) 中完全支援 async/await 模式 - **輕鬆整合**:可與現有的 .NET async 基礎架構無縫運作 - **可維護的解決方案**:遵循 .NET 最佳實務的清晰、可讀的程式碼 IronOCR 中的多執行緒可大幅優化 OCR 任務。 內建的多執行緒功能,結合 `ReadAsync()` 等方法,可簡化大量文字資料的處理。 這樣的結合可確保應用程式保持反應迅速且有效率,讓 IronOCR 成為創造高效能軟體的有效工具,並具備簡化的文字辨識能力。 若要開始使用完整的 [ 功能集](https://ironsoftware.com/csharp/ocr/features/),請查看我們的 [NuGet 套件安裝指南](https://ironsoftware.com/csharp/ocr/get-started/advanced-installation-nuget/)。

常見問題解答

如何在 C# 中異步執行 OCR 而不阻塞主線程?

IronOCR 提供了 ReadAsync 方法,可以實現無阻塞的 OCR 執行。您只需使用 `var result = await new IronOcr.IronTesseract().ReadAsync("image.png");` 即可異步執行 OCR,在處理文件的同時保持應用程式的反應速度。

OCR 是否會自動使用多個 CPU 核心以獲得更佳效能?

是的,IronOCR 透過內建的多執行緒自動利用所有可用的 CPU 核心。IronTesseract 實作可偵測並利用所有核心,無須手動設定,提供最佳化的資源管理和可擴充的效能。

OCR 處理中的多執行緒有哪些主要優點?

IronOCR 的多執行緒實作提供 CPU 核心自動利用、預設的線程安全操作、記憶體和處理的最佳化資源管理,以及可擴充的效能(處理時間會隨可用核心成比例地減少)。

我可以使用 async OCR 同時處理多個 PDF 文件嗎?

是的,IronOCR 的 ReadAsync 方法在處理 PDF 文件或同時處理多個影像檔案時效果特別好,讓您可以同時處理多個文件而不會阻塞您的應用程式。

我是否需要編寫特殊程式碼來啟用 OCR 的多執行緒?

不,IronOCR 不需要專門的 API 或手動配置多執行緒。該函式庫直接將平行性無縫整合到 OCR 工作流程中,自動管理多核心的線程,以獲得最佳效能。

什麼是 OcrReadTask 物件,它對異步處理有何幫助?

IronOCR 中的 OcrReadTask 物件可讓您在處理文件時利用異步並發的優勢。它可讓您以非同步的方式管理 OCR 作業,同時由函式庫處理底層的多執行緒複雜性。

IronOCR 是否與 .NET 10 完全相容?

IronOCR 透過其最新發行版本 2025.12 支援 .NET 10。您可以使用 NuGet(Install-Package IronOcr)安裝該函式庫,並在 .NET 10 下執行類似 ReadAsync() 的動態方法,而無需特殊設定。

Chipego
軟體工程師
Chipego 擁有自然的傾聽技巧,這有助於他理解客戶問題並提供智能解決方案。他於 2023 年加入 Iron Software 團隊,擁有信息技術學士學位。IronPDF 和 IronOCR 是 Chipego 專注的兩個產品,但他對所有產品的知識日漸增長,因為他發現新的方法來支持客戶。他喜歡 Iron Software 的合作生活,來自公司的成員將他們的各種經驗帶來貢獻於有效及創新解決方案。當 Chipego 離開書桌時,他經常被発現正享受一本好書或者在踢足球。
準備好開始了嗎?
Nuget 下載 5,246,844 | 版本: 2025.12 剛發表