C#에서 비동기 및 멀티스레딩을 사용하는 방법 | IronOCR

C# 비동기 및 멀티스레딩 지원 - IronOCR

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

IronOCR 모든 CPU 코어에서 멀티스레딩을 자동으로 처리하고 ReadAsync()와 같은 비동기 메서드를 제공하여 메인 스레드를 차단하지 않고 OCR을 수행함으로써 대용량 문서를 처리하는 동안에도 애플리케이션의 응답성을 보장합니다.

소개

대량의 텍스트 데이터를 효율적으로 처리하기 위해서는 OCR 작업의 정확성과 속도가 모두 필요합니다. 이 문서에서는 IronOCR와 Tesseract의 비동기 지원과 멀티스레딩에 대해 설명합니다. 비동기 프로그래밍을 통해 비차단식 OCR 실행이 가능하며, 텍스트 인식 작업 중에도 응용 프로그램의 응답성을 유지할 수 있습니다. 멀티스레딩은 병렬 처리 능력을 제공하여 OCR 성능을 크게 향상시킵니다. 이 기술들은 개발자가 OCR 기반 응용 프로그램의 효율성과 응답성을 개선하는 데 도움을 줍니다.

빠른 시작: 손쉬운 비동기 OCR을 위한 ReadAsync 사용

IronTesseract의 ReadAsync 메서드를 사용하여 메인 스레드를 차단하지 않고 OCR을 수행하세요. 이를 통해 응용 프로그램에 즉각적인 응답성을 제공하며, 비차단식 OCR을 추가할 수 있습니다. 특히 PDF 문서를 처리하거나 여러 이미지 파일을 동시에 처리하는 경우에 효과적입니다.

  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronOcr 설치하기

    PM > Install-Package IronOcr
  2. 다음 코드 조각을 복사하여 실행하세요.

    var result = await new IronOcr.IronTesseract().ReadAsync("image.png");
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronOCR 사용 시작하기

    arrow pointer

IronOCR에서 멀티스레딩은 어떻게 작동합니까?

IronOCR는 개발자가 특수한 API를 필요로 하지 않아도 원활한 멀티스레딩을 통해 이미지 처리 및 OCR 판독 효율을 향상시킵니다. IronTesseract 여러 코어에서 사용 가능한 모든 스레드를 자동으로 활용하여 시스템 리소스를 최적화하고 OCR을 신속하게 실행합니다. 내장된 멀티스레딩은 개발을 간소화하고 병행 처리를 직접 OCR 워크플로우에 통합하여 성능을 크게 향상시킵니다.

라이브러리의 멀티스레드 Tesseract 구현은 다음과 같은 주요 이점을 제공합니다:

  • 자동 CPU 코어 활용: IronOCR는 수동 구성 없이 모든 사용 가능한 코어를 감지하고 사용합니다.
  • 스레드 안전한 작업: 모든 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);
};
$vbLabelText   $csharpLabel

빠른 OCR 구성을 요구하는 고급 시나리오의 경우, 개발자는 특정 성능 요구에 맞게 멀티스레딩 동작을 미세 조정하여 정확성을 유지하면서 최적화할 수 있습니다.

IronOCR에서 비동기 지원은 어떻게 활용합니까?

비동기 프로그래밍은 메인 스레드를 차단하지 않고 OCR 작업을 실행할 수 있어 OCR 성능을 최적화합니다. 이를 통해 대용량 문서나 이미지를 처리하여 텍스트 인식을 수행하는 동안에도 응용 프로그램의 응답성을 유지합니다. 비동기 지원은 시스템이 OCR 작업이 백그라운드에서 실행되는 동안 다른 작업을 처리할 수 있도록 합니다. 이 기능은 사용자 인터페이스에서 OCR 진행 상황 추적을 구현할 때 중요합니다.

이 섹션에서는 IronOCR에서 비동기 지원을 통합하여 OCR 서비스를 비차단식으로 만드는 다양한 방법을 시연합니다. IronOCR의 비동기 기능은 OCR 작업 중에 응답성을 필요로 하는 데스크톱 응용 프로그램과 여러 동시 OCR 요청을 처리하는 웹 서비스 모두에 최적의 성능을 제공합니다.

언제 OcrReadTask 객체를 사용해야 합니까?

OcrReadTask 객체는 IronOCR 사용하여 OCR 프로세스의 제어 및 유연성을 향상시킵니다. 이러한 객체는 OCR 작업을 캡슐화하여 텍스트 인식 작업의 효율적인 관리를 가능하게 합니다. 이 섹션에서는 IronOCR 워크플로에서 OcrReadTask 객체를 사용하는 방법을 보여주고, 이러한 객체가 OCR 작업을 시작하고 최적화하는 방식을 설명합니다. OcrReadTask 객체는 복잡한 문서 처리를 구성하거나 애플리케이션 응답성을 미세 조정할 때 IronOCR 기능을 극대화하는 데 도움이 됩니다.

OcrReadTask 객체는 다음과 같은 경우에 가장 잘 작동합니다.

  • 작업 실행에 대한 세밀한 제어가 필요할 때
  • 취소 가능한 작업에 대해 중단 토큰 기능을 구현할 때
  • 우선순위가 다른 여러 동시 OCR 작업을 관리할 때
  • 사용자 정의 태스크 스케줄러나 워크플로 엔진과 통합할 때
: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
}
$vbLabelText   $csharpLabel

ReadAsync 메소드를 어떻게 사용합니까?

ReadAsync()는 OCR 작업을 비동기적으로 시작하기 위한 직접적인 메커니즘을 제공합니다. 복잡한 스레딩이나 작업 관리를 하지 않고도 개발자는 비동기적으로 간단히 OCR을 응용 프로그램에 통합할 수 있습니다. 이 메소드는 OCR 작업 중에 메인 스레드를 차단하지 않도록 하여 응용 프로그램의 응답성을 보장합니다.

ReadAsync 메서드는 다음과 같은 경우에 효과적입니다:

  • UI 응답성을 유지해야 하는 데스크톱 응용 프로그램
  • 여러 동시 OCR 요청을 처리하는 웹 응용 프로그램
  • 진행 상황 추적이 필수적인 배치 처리 시나리오
  • .NET 응용 프로그램의 현대적인 async/await 패턴과의 통합
: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
}
$vbLabelText   $csharpLabel

왜 IronOCR에서 비동기와 멀티스레딩을 사용해야 합니까?

IronOCR에서 비동기 지원과 멀티스레딩을 결합하면 현대 응용 프로그램 개발에 수많은 혜택을 제공합니다:

성능 이점:

  • 향상된 처리량: 차단 없이 여러 문서를 동시에 처리
  • 더 나은 리소스 활용: 모든 사용 가능한 코어에서 CPU 사용을 극대화
  • 지연 시간 감소: 이전 작업이 완료되기를 기다리지 않고 즉시 처리 시작
  • 확장 가능한 아키텍처: 아키텍처 변경 없이 증가하는 워크로드 처리

개발 이득:

  • 간소화된 코드: 스레드를 수동으로 관리할 필요 없음 - IronOCR가 복잡성을 처리
  • 모던 패턴: .NET용 Tesseract 5의 async/await 패턴에 대한 완전한 지원
  • 간단한 통합: 기존 .NET 비동기 인프라와 매끄럽게 작동
  • 유지보수 가능한 솔루션: .NET 모범 사례를 따르는 명확하고 읽기 쉬운 코드

IronOCR의 멀티스레딩은 OCR 작업을 중대하게 최적화합니다. 내장된 멀티스레딩 기능은 ReadAsync()와 같은 메서드와 결합되어 대용량 텍스트 데이터 처리를 간소화합니다. 이 조합은 응용 프로그램이 응답성과 효율성을 유지하도록 보장하며, IronOCR을 고성능 소프트웨어로 제작하는 데 효과적인 도구로 만듭니다. 완전한 기능 세트를 시작하려면 NuGet Install-Package 가이드를 확인하세요.

자주 묻는 질문

C#에서 메인 스레드를 차단하지 않고 비동기적으로 OCR을 수행하려면 어떻게 해야 할까요?

IronOCR은 비동기 OCR 실행을 가능하게 하는 ReadAsync 메서드를 제공합니다. `var result = await new IronOcr.IronTesseract().ReadAsync("image.png");`와 같이 간단히 사용하면 OCR을 비동기적으로 수행하여 문서 처리 중에도 애플리케이션의 응답성을 유지할 수 있습니다.

OCR은 성능 향상을 위해 자동으로 여러 CPU 코어를 사용하나요?

네, IronOCR은 내장된 멀티스레딩 기능을 통해 사용 가능한 모든 CPU 코어를 자동으로 활용합니다. IronTesseract 구현은 수동 설정 없이 모든 코어를 감지하고 활용하여 최적화된 리소스 관리와 확장 가능한 성능을 제공합니다.

OCR 처리에서 멀티스레딩의 주요 이점은 무엇입니까?

IronOCR의 멀티스레드 구현은 자동 CPU 코어 활용, 기본적으로 스레드 안전한 작업, 메모리 및 처리에 최적화된 리소스 관리, 그리고 사용 가능한 코어 수에 비례하여 처리 시간이 단축되는 확장 가능한 성능을 제공합니다.

비동기 OCR을 사용하여 여러 PDF 문서를 동시에 처리할 수 있습니까?

네, IronOCR의 ReadAsync 메서드는 PDF 문서를 처리하거나 여러 이미지 파일을 동시에 처리할 때 특히 효과적이며, 애플리케이션을 차단하지 않고 여러 문서를 동시에 처리할 수 있도록 해줍니다.

OCR에서 멀티스레딩을 활성화하기 위해 특별한 코드를 작성해야 하나요?

아니요, IronOCR은 멀티스레딩을 위해 특별한 API나 수동 설정을 필요로 하지 않습니다. 이 라이브러리는 병렬 처리를 OCR 워크플로에 완벽하게 통합하여 최적의 성능을 위해 여러 코어에 걸쳐 스레드를 자동으로 관리합니다.

OcrReadTask 객체는 무엇이며 비동기 처리에 어떻게 도움이 됩니까?

IronOCR의 OcrReadTask 객체를 사용하면 문서 처리 시 비동기 동시성을 활용할 수 있습니다. 이를 통해 OCR 작업을 비동기적으로 관리할 수 있으며, 라이브러리는 기본 멀티스레딩 복잡성을 처리합니다.

IronOCR은 .NET 10과 완벽하게 호환됩니까?

IronOCR은 최신 릴리스 버전 2025.12를 통해 .NET 10을 지원합니다. NuGet Install-Package(Install-Package IronOcr)를 통해 라이브러리를 설치하고, 특별한 설정 없이 .NET 10 환경에서 ReadAsync() 와 같은 비동기 메서드를 실행할 수 있습니다.

치페고
소프트웨어 엔지니어
치페고는 경청 능력이 뛰어나 고객의 문제를 정확히 파악하고 지능적인 해결책을 제시합니다. 정보 기술 학사 학위를 취득한 후 2023년에 Iron Software 팀에 합류했습니다. IronPDF와 IronOCR은 치페고가 주로 담당하는 제품이지만, 고객 지원 방법을 끊임없이 연구하며 모든 제품에 대한 지식을 넓혀가고 있습니다. 그는 Iron Software의 협업적인 분위기를 좋아하며, 회사 전반의 다양한 경험을 가진 팀원들이 효과적이고 혁신적인 솔루션 개발에 기여하는 점을 높이 평가합니다. 치페고는 업무 외 시간에는 독서를 즐기거나 축구를 하는 것을 좋아합니다.
시작할 준비 되셨나요?
Nuget 다운로드 5,525,971 | 버전: 2026.3 방금 출시되었습니다
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronOcr
샘플을 실행하세요 이미지가 검색 가능한 텍스트로 바뀌는 것을 확인해 보세요.