IRONSOFTWAREHOME

IronBarcode와 C#에서 비동기 및 다중 스레드 사용 방법

Hairil Hasyimi Bin Omar
Hairil Hasyimi Bin Omar
Updated: 2026년 6월 3일

IronBarcode에서의 비동기 및 다중 스레딩은 바코드 읽기 성능을 다르게 최적화합니다 - 비동기는 I/O 작업 중 메인 스레드를 차단하지 않도록 하고, 다중 스레딩은 CPU 코어 전반에 여러 바코드를 동시에 처리합니다.

개발자들은 종종 AsyncMultithreading 작업을 혼동합니다. 두 방법 모두 시스템 리소스 활용 최적화와 실행 시간을 줄임으로써 프로그램 성능과 효율성을 향상시킵니다. 그러나 접근 방식, 메커니즘, 사용 사례에서 차이가 있습니다. IronBarcode는 두 가지 접근 방식을 모두 지원합니다. 이 기사에서는 IronBarcode를 사용하여 차이점과 구현 방법을 탐구합니다.

빠른 시작: 비동기 및 다중 스레드 바코드 읽기 예제

IronBarcode를 사용하여 즉시 시작할 수 있는 이 한 줄의 예제를 사용하세요. 비동기 읽기 및 다중 스레드 옵션을 결합하여 최소한의 설정으로 여러 바코드 이미지를 병렬로 스캔하는 것이 얼마나 쉬운지를 보여줍니다.

  1. 1Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. 2다음 코드 조각을 복사하여 실행하세요.

    var results = await IronBarCode.BarcodeReader.ReadAsync(imagePaths, new IronBarCode.BarcodeReaderOptions { Multithreaded = true, MaxParallelThreads = 4, ExpectMultipleBarcodes = true });
    C#
  3. 3실제 운영 환경에서 테스트할 수 있도록 배포하세요.

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

IronBarcode로 비동기적으로 바코드를 읽는 방법은?

비동기적 읽기는 길거나 차단되는 작업이 메인 스레드의 실행을 차단하지 않으면서 진행되도록 합니다. C#에서, 비동기 기능을 지원하는 메서드에는 asyncawait 키워드를 사용합니다. 이 접근법은 추가 스레드를 생성하지 않고 현재 스레드를 해제합니다. 메인 스레드는 작업을 시작하고 관리하지만 단일 작업에 전적으로 헌신하지 않습니다. 비동기 메서드가 그 관여를 요구할 때 메인 스레드는 돌아오며, 필요하지 않을 때는 다른 작업을 처리할 수 있도록 해제됩니다. 특히 파일 읽기/쓰기 또는 네트워크 요청 만들기 같은 I/O 기반 작업에 유용합니다.

바코드 읽기를 예로 들어보겠습니다. 프로세스는 다음을 포함합니다:

  • 파일 읽기
  • 읽기 옵션 적용
  • 바코드 디코딩

파일을 읽는 동안 메인 작업을 해제할 수 있습니다. 이는 여러 이미지 파일이나 큰 PDF의 시나리오에 유익합니다. 이는 우리의 바코드 읽기 튜토리얼에서 설명됩니다.

바코드를 비동기적으로 읽기 위해 이미지는 ReadAsync 메서드를, PDF 문서는 ReadPdfAsync 메서드를 사용하세요. 비동기 작업 구현 전에 프로젝트에서 NuGet을 통해 IronBarcode를 설치했는지 확인하세요.

using IronBarCode;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

List<string> imagePaths = new List<string>() { "image1.png", "image2.png" };

// Barcode reading options
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = true
};

// Read barcode using Async
BarcodeResults asyncResult = await BarcodeReader.ReadAsync(imagePaths, options);

// Print the results to console
foreach (var result in asyncResult)
{
    Console.WriteLine(result.ToString());
}

위의 코드 스니펫은 IronBarcode에 의해 비동기적으로 읽혀질 이미지 경로의 List를 인스턴스화합니다. 이미지를 읽기 위해 BarcodeReader 클래스의 ReadAsync 메서드를 사용하세요. imagePaths 및 읽기 옵션을 지정하세요. 고급 구성 옵션에 대해서는 바코드 리더 설정에 대한 우리의 가이드를 참조하세요.

이 비동기 작업 메서드는 동일한 클래스에서 ReadPdfAsync를 통해 PDF 문서에서 바코드를 읽기 위해서도 사용할 수 있습니다. 특정 PDF 읽기 구성에 대해서는 우리의 PDF 바코드 리더 설정 가이드를 참조하세요.

Multithreaded
MaxParallelThreads

일반적인 메서드보다 비동기 읽기를 언제 사용해야 하나요?

비동기 읽기는 여러 상황에서 우수합니다:

  1. GUI 애플리케이션: UI 응답성을 요구하는 Windows Forms 또는 WPF 애플리케이션. 바코드 스캔 중에 인터페이스 동결을 방지합니다.

  2. 웹 애플리케이션: 특히 업로드된 바코드 이미지를 처리할 때 스레드를 차단하지 않고 여러 동시 요청을 처리하는 ASP.NET 애플리케이션.

  3. 배치 처리: I/O 작업 중 다른 작업을 실행할 수 있는 연속적인 다수의 바코드 이미지 또는 PDF 읽기.

  4. 네트워크 작업: 원격 소스 또는 URL에서 바코드 읽기, 우리의 URL에서 비동기적으로 바코드 읽기 예제 참조.

비동기 읽기가 애플리케이션의 응답성을 개선하는 이유는?

비동기 읽기는 I/O 기반 작업 중에 메인 스레드를 해제함으로써 응답성을 개선합니다. IronBarcode가 디스크에서 이미지 파일을 읽거나 PDF를 처리할 때, 스레드는 대기 상태가 아닙니다. 대신 사용자 입력에 응답하거나 요청을 처리하는 등 다른 작업을 처리합니다. 이는 특히 다음과 같은 경우에 눈에 띕니다:

  • 로드 시간이 상당한 대형 이미지 파일
  • 바코드를 포함한 다수의 페이지가 있는 PDF
  • 네트워크 기반 이미지 소스
  • 바코드 감지 전에 이미지 교정 필터가 필요한 시나리오

비동기 바코드 읽기 사용 시 일반적인 함정은 무엇인가요?

비동기 바코드 읽기를 구현할 때 일반적인 문제점에는 다음과 같은 것이 있습니다:

  1. 교착 상태: UI 컨텍스트에서 비동기 메서드에 Result 또는 Wait()를 피하세요. 호출 체인 전체에서 항상 await를 사용하세요.

  2. 예외 처리: 비동기 메서드에서 예외가 예상대로 전파되지 않을 수 있으므로 비동기 호출을 try-catch 블록으로 감쌉니다.

  3. 컨텍스트 전환: 원래 동기화 컨텍스트로 돌아갈 필요가 없을 때 ConfigureAwait(false) 사용을 고려하세요.

  4. 성능 오해: 비동기는 개별 작업을 가속화하지 않습니다; 응답성을 개선합니다. 여러 이미지의 경우 속도 개선을 위해 멀티스레딩을 고려하세요.

비동기 관련 문제 해결을 위해 우리의 바코드 인식 문제 해결 가이드를 참조하세요.

멀티스레드 바코드 읽기를 활성화하는 방법은?

비동기 작업과 달리, 멀티스레딩은 여러 스레드에서 단일 프로세스를 동시에 실행합니다. 단일 스레드에서 순차 실행 대신, 멀티스레딩은 여러 스레드에 작업을 분할하여 동시 실행합니다. 멀티스레딩은 여러 CPU 코어를 필요로 하며, 이 코어들은 독립적으로 스레드를 실행합니다. 비동기 작업처럼 멀티스레딩도 애플리케이션 성능과 응답성을 향상시킵니다.

IronBarcode에서 Multithreaded 속성을 설정하고 BarcodeReaderOptions 내에서 MaxParallelThreads를 사용하여 동시 실행의 최대 코어를 지정하여 멀티스레딩을 활성화하세요. 기본 MaxParallelThreads 값은 4이며, 사용 가능한 CPU 코어에 따라 조정 가능합니다. 최적의 성능 구성을 위해, 읽기 속도 옵션 안내서를 참조하세요.

참고해 주세요: 사용 가능한 코어를 찾으려면: 작업 관리자 -> 성능 탭 -> CPU 클릭.} '코어' 필드가 수를 표시합니다.
using IronBarCode;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

List<string> imagePaths = new List<string>(){"test1.jpg", "test2.png"};

// Barcode reading options
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    Multithreaded = true,
    MaxParallelThreads = 4,
    ExpectMultipleBarcodes = true
};

// Read barcode with multithreaded enabled
BarcodeResults results = BarcodeReader.Read(imagePaths, options);

// Print the results to console
foreach (var result in results)
{
    Console.WriteLine(result.ToString());
}

얼마나 성능 향상을 기대할 수 있을까요?

두 샘플 이미지를 읽고 일반, 비동기 및 멀티스레드 작업 간의 읽기 시간을 비교해봅시다.

샘플 이미지

UPC-A 바코드 예시로 멀티스레드 바코드 읽기 시연을 위해 번호 0 123456 789012를 보여줍니다.
UPC-A 바코드 샘플로 멀티스레드 바코드 읽기 시연을 위해 번호 771234567003을 보여줍니다.
일반 읽기비동기 읽기멀티스레드 읽기 (4코어)
01.75초01.67초01.17초

비교 결과 비동기 및 멀티스레드 읽기로 성능이 크게 향상됨을 보여줍니다. 멀티스레딩은 일반 읽기에 비해 약 33%의 향상을 제공하며, 비동기는 약 5%의 향상을 제공합니다. 그러나 이런 작업들은 서로 다른 목적과 접근 방식을 가지고 있습니다. 귀하의 애플리케이션 요구 사항에 가장 적합한 접근 방식을 선택하세요.

성능 향상은 다음에 따라 달라집니다:

  • 처리된 이미지 수
  • 이미지 복잡성과 바코드 품질
  • 사용 가능한 CPU 코어
  • 기타 시스템 리소스

단일 문서에 여러 바코드가 있는 상황에는 여러 바코드 읽기 안내서를 방문하세요.

언제 멀티스레딩을 선택해야 하나요? 비동기 작업을 대체할 때

다음 경우 멀티스레딩을 선택하세요:

  1. CPU-종속 작업: 처리에는 복잡한 이미지 필터 또는 고해상도 이미지와 같은 무거운 계산이 필요합니다.
  2. 배치 처리: 여러 독립적인 이미지는 동시에 처리할 필요가 있습니다.
  3. 다중 코어 시스템: 배포 환경에 사용할 수 있는 여러 CPU 코어가 있습니다.
  4. 성능에 민감한: 자원 효율보다 생처리 속도가 중요합니다.

다음 경우 비동기 작업을 선택하세요:

  1. I/O 종속 작업: 대부분의 시간은 파일을 읽거나 네트워크 응답을 기다리는 데 소요됩니다.
  2. UI 애플리케이션: 응답성 있는 사용자 인터페이스를 유지하는 것이 중요합니다.
  3. 제한된 자원: 제한된 CPU 코어로 시스템을 실행합니다.
  4. 웹 애플리케이션: 여러 동시 요청을 효율적으로 처리해야 할 때

최적의 MaxParallelThreads 값을 결정하는 방법은?

최적의 MaxParallelThreads 값은 여러 요인에 따라 달라집니다:

  1. 사용 가능한 CPU 코어: Environment.ProcessorCount을 기준점으로 시작하세요.
  2. 작업부하 유형: 순수한 바코드 읽기의 경우 사용 가능한 코어의 75%를 사용하세요.
  3. 시스템 자원: 운영 체제 및 기타 프로세스를 위한 여유 공간을 남겨 두세요.
  4. 테스트 결과: 특정 작업 부하에 대한 벤치마크를 작성하세요.

최적의 값을 찾기 위한 실용적인 접근 방식은 다음과 같습니다:

int optimalThreads = Math.Max(1, Environment.ProcessorCount - 1);

프로덕션 환경에서는 성능을 모니터링하고 실제 사용 패턴에 따라 조정하세요. 최대 성능을 요구하는 기업 배포 환경에서의 라이센스 키 구성 구현을 고려하세요.

완벽한 API 기능을 위해, IronBarcode API Reference를 참조하세요.

자주 묻는 질문

바코드를 읽을 때 비동기 방식과 멀티스레딩 방식의 차이점은 무엇인가요?

IronBarcode에서 비동기 작업은 파일 읽기와 같은 I/O 작업 중에 메인 스레드가 차단되는 것을 방지하는 반면, 멀티스레딩은 CPU 코어에서 여러 바코드를 동시에 처리합니다. 비동기 방식은 async/await 키워드를 사용하여 시간이 오래 걸리는 작업 중에 메인 스레드를 해제하고, 멀티스레딩은 여러 스레드를 생성하여 바코드 처리를 병렬로 수행합니다.

C#에서 비동기 바코드 읽기를 어떻게 구현하나요?

IronBarcode는 비동기 바코드 읽기를 위한 ReadAsync() 및 ReadPdfAsync() 메서드를 제공합니다. C#에서 async/await 키워드와 함께 이러한 메서드를 사용하면 메인 스레드를 차단하지 않고 이미지 및 PDF에서 바코드를 읽을 수 있습니다. 이는 여러 이미지 파일이나 대용량 PDF 문서를 처리할 때 특히 유용합니다.

바코드 처리에 멀티스레딩을 활성화하려면 어떻게 해야 하나요?

IronBarcode에서 멀티스레딩을 활성화하려면 BarcodeReaderOptions에서 Multithreaded 속성을 'true'로 설정하십시오. 또한 MaxParallelThreads 속성을 사용하여 병렬 스레드 수를 제어함으로써 시스템 성능에 따라 최적화할 수 있습니다.

최적의 성능을 위해 비동기와 멀티스레딩을 결합할 수 있을까요?

네, IronBarcode에서는 두 가지 방식을 모두 사용할 수 있습니다. Multithreaded = true로 설정하고 BarcodeReaderOptions에서 MaxParallelThreads를 구성하여 멀티스레딩을 활성화한 ReadAsync() 함수를 사용할 수 있습니다. 이 조합을 통해 비차단 I/O 작업과 여러 CPU 코어에 걸친 병렬 처리를 모두 활용할 수 있습니다.

바코드 판독 시 비동기 처리와 멀티스레딩 중 어떤 것을 언제 사용해야 할까요?

IronBarcode에서 대용량 파일 읽기나 네트워크 요청과 같은 I/O 중심 작업을 처리할 때는 UI 멈춤 현상을 방지하기 위해 비동기 작업을 사용하십시오. 여러 바코드를 동시에 처리해야 하고 CPU 리소스가 충분한 경우에는 멀티스레딩을 사용하십시오. 여러 개의 대용량 바코드 이미지나 PDF 파일을 처리할 때는 최상의 결과를 위해 두 가지 방식을 모두 사용하는 것이 좋습니다.

What factors affect the optimal 'MaxParallelThreads' setting in IronBarcode?

The optimal 'MaxParallelThreads' value is influenced by available CPU cores, workload type, overall system resources, and testing results. A practical starting point is to use one less than the total available CPU cores.

How does IronBarcode's async functionality improve application responsiveness?

Async functionality in IronBarcode increases application responsiveness by freeing the main thread during long I/O-bound barcode reading tasks, allowing the application to handle other processes concurrently, such as user interface updates.

What are the advantages of using multithreading in barcode reading?

Multithreading allows simultaneous processing of multiple images, which enhances performance in CPU-bound operations such as processing complex image filters or high-resolution images. This is beneficial in environments with multiple CPU cores.

How can I implement license key configuration for optimal performance in IronBarcode?

For enterprise deployments requiring maximum performance, consider implementing license key configuration. This can be done by following IronBarcode's documentation on license key settings to fully unlock features and optimize resource utilization.

What are the key differences between async and multithreading in IronBarcode?

Async in IronBarcode prevents blocking the main thread during I/O operations, ideal for file and network tasks, whereas multithreading divides tasks among threads for concurrent execution across CPU cores, improving performance in CPU-bound operations.

시작할 준비 되셨나요?

Nuget Downloads 2,422,100버전:2026.9방금 출시

무료로 받기

30일 체험 키를 즉시 받으세요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.
bullet_test워터마크 없이
프로덕션에서 테스트
bullet_calendar30일 완전한
기능의 제품
bullet_support체험 기간 동안
24/5 기술 지원
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.
PDF용 C# NuGet 라이브러리
NuGet을 사용하여 설치하세요

버전: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 선택합니다.
  2. 찾아보기를 선택하고 "IronBarCode"를 검색하세요.
  3. 패키지를 선택하고 설치하세요
C# PDF DLL
DLL 다운로드

버전: 2026.9

  1. IronBarCode 파일을 다운로드하고 솔루션 디렉터리 내의 ~/Libs와 같은 위치에 압축을 해제하세요.
  2. Visual Studio 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭합니다. 찾아보기를 선택하고 "IronBarCode.dll"을 선택합니다.

라이선스 가격은 749달러 부터 시작합니다.

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.