C# を使用したバーコードにおける非同期およびマルチスレッドの使用方法

How to Use Async and Multithread

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

用語Asyncマルチスレッド操作はしばしば混同されます。 両方の方法は、システムリソースの利用を最適化し、実行時間を短縮することで、プログラムのパフォーマンスと効率を向上させることを目的としていますが、アプローチ、メカニズム、使用目的が異なります。 IronBarcodeは両方のアプローチをサポートしています。 この記事では、それらの違いとIronBarcodeを使用してそれらを実装する方法を探ります。

クイックスタート: 非同期&マルチスレッドバーコード読み取り例

このワンラインの例を使用して、即座にIronBarcodeで開始できます。 非同期読み取りとマルチスレッドオプションを組み合わせて、最小限の設定で複数のバーコード画像を並行してスキャンする方法を示しています。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. Copy and run this code snippet.

    var results = await IronBarCode.BarcodeReader.ReadAsync(imagePaths, new IronBarCode.BarcodeReaderOptions { Multithreaded = true, MaxParallelThreads = 4, ExpectMultipleBarcodes = true });
  3. Deploy to test on your live environment

    Start using IronBarcode in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

最小限のワークフロー (5ステップ)

  1. 非同期およびマルチスレッドサポートのためのC#ライブラリをダウンロード
  2. 画像およびPDFから非同期バーコード読み取りを行うためにReadAsyncおよびReadPdfAsyncメソッドを使用
  3. Multithreadedプロパティを'true'に設定してマルチスレッドを有効化
  4. MaxParallelThreadsプロパティを使用して並列スレッド数を指定
  5. 通常、非同期、マルチスレッドのバーコード読み取り間のパフォーマンス比較を確認

## バーコードを非同期に読む例 まず、非同期読み取りとは何か、そしてそれがユーザーにどのように利益をもたらすかを理解しましょう。 非同期読み取りにより、長時間またはブロッキング操作がメインスレッドの実行をブロックせずに進行できるようになります。 C#では、非同期機能をサポートするメソッドと一緒に`async`および`await`キーワードを利用できます。 これは追加のスレッドを作成するのではなく、現在のスレッドを解放します。 タスクの開始と管理にはメインスレッドが必要ですが、単一のタスクに専念する必要はありません。 非同期メソッドが関与を求めるときにメインスレッドが呼び出され、それ以外のタスクを処理するために解放されます—ファイルの読み書きやネットワークリクエストなどのI/Oバウンドタスクのように。 バーコード読み取りを一例として考えてみましょう。 このシナリオでは、関与するステップは次のとおりです: - ファイルの読み取り - 読み取りオプションの適用 - バーコードのデコード 「ファイルの読み取り」段階ではメインタスクをリリースできます。 `ReadAsync`および`ReadPdfAsync`メソッドを使用して、画像およびPDFドキュメントのバーコードを非同期に読み取ります。 ```csharp :path=/static-assets/barcode/content-code-examples/how-to/async-multithread-async.cs ``` 上記のコードスニペットから、IronBarcodeによって非同期に読み取られる画像パスのリストをインスタンス化しました。 `BarcodeReader`クラスの`ReadAsync`メソッドを使用して画像を読み取ることができます。 その後、ユーザーは画像パスおよび読み取りオプションを指定できます。 非同期操作のこの方法は、PDFドキュメント内のバーコードを読み取るためにも利用可能であり、これは同じクラスの一部である`ReadPdfAsync`として知られています。 ## マルチスレッドでバーコードを読む例 非同期操作とは異なり、マルチスレッドは単一のプロセスを複数のスレッドで同時に実行できるようにします。 これは、単一のスレッドでプロセスを逐次的に実行する代わりに、マルチスレッドがタスクを複数のスレッドに分割し、同時実行を可能にすることを意味します。 ただし、マルチスレッドを機能させるためには、マシンに複数のCPUコアが必要であり、これらのコアが独立してスレッドを実行するのに使用されます。 非同期操作と同様に、マルチスレッドはアプリケーションのパフォーマンスと応答性を向上させることを目的としています。 IronBarcodeでは、`Multithreaded`プロパティを設定し、BarcodeReaderOptionsで`MaxParallelThreads`を使用して同時実行の最大コアを指定してマルチスレッドを有効にします。 `MaxParallelThreads`のデフォルト値は4で、利用可能なCPUコアに基づいて調整できます。
ご注意利用可能なコアを見つける方法: タスクマネージャー -> パフォーマンスタブ -> CPUをクリックします。 'コア' フィールドが数を表示します。
### パフォーマンス比較 ```cs :path=/static-assets/barcode/content-code-examples/how-to/async-multithread-multithread.cs ``` では、以下の2つの画像を読み取り、通常、非同期、マルチスレッド操作の読み取り時間を比較してみましょう。 #### サンプル画像
![画像2](/static-assets/barcode/how-to/async-multithread/sample2.webp)
通常の読み取り 非同期読み取り マルチスレッド読み取り(4コア)
01.75秒 01.67秒 01.17秒
比較表から、非同期およびマルチスレッド読み取りが実施されると、パフォーマンスの大幅な向上があることが明らかです。 しかし、これらの2つの操作は異なる目的とアプローチを持っています。 したがって、ユーザーは自分が構築しているアプリケーションに最適なアプローチを判断する必要があります。 最後に、1つのドキュメントに複数のバーコードがある場合があるかもしれません。 詳細については、[複数のバーコードを読む](/csharp/barcode/how-to/read-multiple-barcodes/)ガイドをご覧ください。 For more information, visit the [Read Multiple Barcodes](/csharp/barcode/how-to/read-multiple-barcodes/) guide.

よくある質問

C#で非同期バーコード読み取りを実装するにはどうすればよいですか?

C#で非同期バーコード読み取りを実装するには、IronBarcodeのReadAsyncReadPdfAsyncメソッドを使用します。これらのメソッドにより、メインスレッドをブロックせずに画像やPDFからバーコードを読み取ることができます。

バーコード処理用にマルチスレッドを有効にするためのステップは何ですか?

バーコード処理用にマルチスレッドを有効にするには、Multithreadedプロパティをtrueに設定し、MaxParallelThreadsプロパティを設定して、複数のCPUコアを効率的に利用します。IronBarcodeはこれらの設定をサポートしています。

バーコード読み取りで非同期操作を使用する利点は何ですか?

バーコード読み取りで非同期操作を使用することにより、メインスレッドをブロックせずにタスクを進行させ、特にI/Oバウンドの操作でアプリケーションの応答性を向上させることができます。IronBarcodeの非同期メソッドは、asyncおよびawaitキーワードを使用してこれを容易にします。

マルチスレッドがバーコード読み取りのパフォーマンスをどのように向上させますか?

マルチスレッドは、複数のCPUコア間でタスクの同時実行を可能にすることで、バーコード読み取りのパフォーマンスを向上させ、処理を高速化します。これは、特にCPUバウンドのタスクに有益です。

マルチスレッドのバーコード読み取りに使用されるスレッドのデフォルト数は何ですか?

IronBarcodeでは、マルチスレッドのバーコード読み取りに使用されるスレッドのデフォルト数は4で、これをMaxParallelThreadsプロパティを介してCPUの能力に基づいて調整できます。

C#で非同期およびマルチスレッドのバーコード読み取り用のライブラリはどこでダウンロードできますか?

C#で非同期およびマルチスレッドのバーコード読み取り用のライブラリは、.NETパッケージマネージャーNuGet(https://nuget.org/packages/IronPdf/)からダウンロードできます。このライブラリは、非同期およびマルチスレッド操作の機能を提供します。

バーコード読み取りのためにすべてのシステムでマルチスレッドを使用できますか?

マルチスレッドは、スレッドの同時処理を可能にする複数のCPUコアを持つシステムで使用できます。IronBarcodeのマルチスレッド機能はそのようなシステムを活用します。

通常、非同期、マルチスレッドのバーコード読み取りのパフォーマンスをどのように比較できますか?

パフォーマンス比較は、通常の読み取りが最も遅く、非同期読み取りが速く、マルチスレッド読み取りが最速であることを示します。これは、複数のCPUコアを活用するためです。IronBarcodeは、これらの読み取りオプションを提供してパフォーマンスを向上させます。

ドキュメント内の複数のバーコードを読み取るための最良の方法は何ですか?

IronBarcodeは、ドキュメント内の複数のバーコードを読み取るための包括的なサポートを提供します。詳細なガイダンスについては、ドキュメントをご覧ください。/csharp/barcode/how-to/read-multiple-barcodes/。

Hairil Hasyimi Bin Omar
ソフトウェアエンジニア
すべての優れたエンジニアのように、ハイリルは熱心な学習者です。彼はC#、Python、およびJavaの知識を磨いており、その知識を利用してIron Software全体のチームメンバーに価値を追加しています。ハイリルはマレーシアのマラ工科大学からIron Softwareチームに参加し、化学およびプロセス工学の学士号を取得しました。
準備はいいですか?
Nuget ダウンロード 1,935,276 | バージョン: 2025.11 ただ今リリースされました