IronOCR 操作指南 异步和多线程支持 IronOCR 对 C# 异步和多线程的支持 Chipego Kalinda 已更新:六月 9, 2025 下载 IronOCR NuGet 下载 DLL 下载 Windows 安装程序 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在双子座打开 向 Gemini 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 This article was translated from English: Does it need improvement? Translated View the article in English 在不断发展的软件开发领域,高效处理大量文本数据仍然是一个关键挑战。 在本文中,我们将探讨 IronOCR 和 Tesseract 中异步支持和多线程的动态协同作用。 异步编程引入了一种非阻塞范式,确保我们的应用程序在执行 OCR 任务期间保持灵活和响应迅速。 与此同时,我们深入研究了多线程领域,揭示了并行处理在显著提高文本识别操作性能方面的潜力。 加入我们,我们将揭开这些技术集成的神秘面纱,帮助开发人员提高其 OCR 应用程序的效率和响应速度。 快速入门:使用 ReadAsync 轻松实现异步 OCR 入门非常简单:使用 IronTesseract 的 ReadAsync 方法执行 OCR,而不会阻塞主线程。 非常适合快速为您的应用程序添加响应迅速、无阻塞的 OCR 功能。 立即开始使用 NuGet 创建 PDF 文件: 使用 NuGet 包管理器安装 IronOCR PM > Install-Package IronOcr 复制并运行这段代码。 var result = await new IronOcr.IronTesseract().ReadAsync("image.png"); 部署到您的生产环境中进行测试 立即开始在您的项目中使用 IronOCR,免费试用! 免费试用30天 最小工作流程(5 个步骤) 下载一个支持 Tesseract 的 C# 库,该库支持异步和多线程。 利用 IronOCR 管理的多线程 准备PDF文档和图像以进行读取 使用 OcrReadTask 对象可以利用异步并发特性。 为了方便起见,请使用ReadAsync方法 理解多线程 IronOCR 通过无缝多线程增强了图像处理和 OCR 读取的效率,从而无需开发人员使用专门的 API。 IronTesseract 会自动利用多个核心上的所有可用线程,优化系统资源,从而实现快速响应的 OCR 执行。 这种固有的多线程不仅简化了开发,而且显著提高了性能,展现了并行性与 OCR 工作流程的巧妙融合。 以下是 C# 中多线程读取操作的示例: :path=/static-assets/ocr/content-code-examples/how-to/async-simple-multithreading.cs using IronOcr; using System; var ocr = new IronTesseract(); using (var input = new OcrPdfInput(@"example.pdf")) { var result = ocr.Read(input); Console.WriteLine(result.Text); }; Imports IronOcr Imports System Private ocr = New IronTesseract() Using input = New OcrPdfInput("example.pdf") Dim result = ocr.Read(input) Console.WriteLine(result.Text) End Using $vbLabelText $csharpLabel 了解异步支持 在光学字符识别 (OCR) 领域,异步编程或"异步"在优化性能方面起着至关重要的作用。 异步支持允许开发者在不阻塞主线程的情况下执行 OCR 任务,从而确保应用程序保持响应。想象一下,当需要处理大型文档或图像进行文本识别时,异步支持可以让系统在 OCR 操作进行的同时继续处理其他任务。 在本节中,我们将深入探讨 IronOCR 中异步支持的轻松集成,展示使您的 OCR 服务不阻塞的不同方法。 使用 OcrReadTask 对象 在使用 IronOCR 时, OcrReadTask对象的使用被证明是增强 OCR 流程控制和灵活性的宝贵资产。 这些对象封装了 OCR 操作,使开发人员能够高效地管理文本识别任务。 本节提供在 IronOCR 工作流程中使用OcrReadTask对象的示例,演示如何利用它们来启动和优化 OCR 任务。 无论您是在协调复杂的文档处理,还是在微调 OCR 应用程序的响应速度,有效利用OcrReadTask对象都能帮助您最大限度地发挥 IronOCR 的功能。 :path=/static-assets/ocr/content-code-examples/how-to/async-ocrtask.cs using IronOcr; IronTesseract ocr = new IronTesseract(); OcrPdfInput largePdf = new OcrPdfInput("chapter1.pdf"); Func<OcrResult> reader = () => { return ocr.Read(largePdf); }; OcrReadTask readTask = new OcrReadTask(reader.Invoke); // Start the OCR task asynchronously readTask.Start(); // Continue with other tasks while OCR is in progress DoOtherTasks(); // Wait for the OCR task to complete and retrieve the result OcrResult result = await Task.Run(() => readTask.Result); Console.Write($"##### OCR RESULTS ###### \n {result.Text}"); largePdf.Dispose(); readTask.Dispose(); static void DoOtherTasks() { // Simulate other tasks being performed while OCR is in progress Console.WriteLine("Performing other tasks..."); Thread.Sleep(2000); // Simulating work for 2000 milliseconds } Imports Microsoft.VisualBasic Imports IronOcr Private ocr As New IronTesseract() Private largePdf As New OcrPdfInput("chapter1.pdf") Private reader As Func(Of OcrResult) = Function() Return ocr.Read(largePdf) End Function Private readTask As New OcrReadTask(AddressOf reader.Invoke) ' Start the OCR task asynchronously readTask.Start() ' Continue with other tasks while OCR is in progress DoOtherTasks() ' Wait for the OCR task to complete and retrieve the result Dim result As OcrResult = Await Task.Run(Function() readTask.Result) Console.Write($"##### OCR RESULTS ###### " & vbLf & " {result.Text}") largePdf.Dispose() readTask.Dispose() 'INSTANT VB TODO TASK: Local functions are not converted by Instant VB: 'static void DoOtherTasks() '{ ' ' Simulate other tasks being performed while OCR is in progress ' Console.WriteLine("Performing other tasks..."); ' Thread.Sleep(2000); ' Simulating work for 2000 milliseconds '} $vbLabelText $csharpLabel 使用异步方法 ReadAsync()提供了一种简单直观的机制,用于异步启动 OCR 操作。 无需复杂的线程或任务管理,开发人员即可轻松地将异步 OCR 集成到他们的应用程序中。 这种方法使主线程摆脱了阻塞式 OCR 任务的负担,确保应用程序保持响应迅速和灵活敏捷。 :path=/static-assets/ocr/content-code-examples/how-to/async-read-async.cs using IronOcr; using System; using System.Threading.Tasks; IronTesseract ocr = new IronTesseract(); using (OcrPdfInput largePdf = new OcrPdfInput("PDFs/example.pdf")) { var result = await ocr.ReadAsync(largePdf); DoOtherTasks(); Console.Write($"##### OCR RESULTS ###### " + $"\n {result.Text}"); } static void DoOtherTasks() { // Simulate other tasks being performed while OCR is in progress Console.WriteLine("Performing other tasks..."); System.Threading.Thread.Sleep(2000); // Simulating work for 2000 milliseconds } Imports Microsoft.VisualBasic Imports IronOcr Imports System Imports System.Threading.Tasks Private ocr As New IronTesseract() Using largePdf As New OcrPdfInput("PDFs/example.pdf") Dim result = Await ocr.ReadAsync(largePdf) DoOtherTasks() Console.Write($"##### OCR RESULTS ###### " & $vbLf & " {result.Text}") End Using 'INSTANT VB TODO TASK: Local functions are not converted by Instant VB: 'static void DoOtherTasks() '{ ' ' Simulate other tasks being performed while OCR is in progress ' Console.WriteLine("Performing other tasks..."); ' System.Threading.Thread.Sleep(2000); ' Simulating work for 2000 milliseconds '} $vbLabelText $csharpLabel 结论 总而言之,在 IronOCR 中利用多线程技术,对于优化 OCR 任务而言具有颠覆性的意义。 IronOCR 固有的多线程功能,加上ReadAsync()等用户友好方法,简化了对大量文本数据的处理。 这种协同作用确保您的应用程序保持响应迅速且高效,使 IronOCR 成为打造具有精简文本识别功能的高性能软件解决方案的强大工具。 常见问题解答 异步编程如何增强OCR任务? IronOCR中的异步编程允许OCR任务在不阻塞主应用程序线程的情况下运行。这确保应用程序在处理OCR操作时仍然响应。 多线程在OCR过程中起什么作用? IronOCR中的多线程在多个内核上实现并行处理,优化系统资源,并显著提升文本识别操作的性能。 如何开始使用带有Tesseract的异步和多线程? 要开始使用 Tesseract 的 async 和多线程,请下载一个支持这些功能的 C# 库。IronOCR 无缝集成,使您能够高效管理 OCR 任务,使用 ReadAsync() 方法。 OcrReadTask对象用于什么? IronOCR 中的 OcrReadTask 对象封装了 OCR 操作,为开发人员提供增强的控制和灵活性,以高效地管理文本识别任务。 我如何执行非阻塞OCR操作? 您可以通过使用 IronOCR 中的 ReadAsync() 方法执行非阻塞的 OCR 操作。这种方法允许 OCR 任务异步运行,释放主线程并保持应用程序响应。 IronOCR能够处理PDF和图像吗? 是的,IronOCR可以处理PDF和图像以进行文本识别。它利用多线程和异步功能来高效处理各种文档类型。 我需要专门的API来在IronOCR中实现多线程吗? 不,您不需要专门的API。IronOCR会自动管理多线程,利用所有可用核心来优化OCR任务性能。 ReadAsync()方法如何为OCR应用程序带来好处? IronOCR 中的 ReadAsync() 方法允许开发人员异步启动 OCR 操作,确保应用程序在处理大量文本数据时保持灵活和响应。 在OCR中使用异步和多线程的优点是什么? 在IronOCR中共同使用异步和多线程为优化OCR任务提供了强大的组合。异步确保非阻塞执行,而多线程利用多个核心以更快的速度处理。 IronOCR能够自动处理多核上的OCR任务吗? 是的,IronOCR会自动利用所有可用内核进行OCR任务的处理,优化处理速度和资源利用,而不需要开发人员的显式管理。 IronOCR 是否完全兼容 .NET 10? IronOCR 最新版本 2025.11 支持 .NET 10。您可以使用 NuGet (Install-Package IronOcr) 安装该库,并在 .NET 10 下运行ReadAsync()等异步方法,无需特殊配置。 Chipego Kalinda 立即与工程团队聊天 软件工程师 Chipego 拥有倾听的天赋,帮助他理解客户问题,并提供智能解决方案。他于 2023 年加入 Iron Software 团队,学习了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 关注的两个产品,但由于他发现了支持客户的新方法,因此他的所有产品知识每天都在增长。他喜欢 Iron Software 的协作生活,公司各个成员利用他们的多样经验来贡献有效的创新解决方案。当 Chipego 离开办公桌时,他常常读书或踢足球。 准备开始了吗? Nuget 下载 5,167,857 | Version: 2025.11 刚刚发布 免费 NuGet 下载 总下载量:5,167,857 查看许可证