IRONSOFTWAREHOME

IronBarcode ile C#'ta Async ve Çoklu İş Parçacığı Kullanma

Hairil Hasyimi Bin Omar
Hairil Hasyimi Bin Omar
Updated: 3 Haziran 2026

IronBarcode'da async ve çoklu iş parçacığı, barkod okuma performansını farklı şekilde optimize eder - async, I/O işlemleri sırasında ana iş parçacığının bloklanmasını önlerken, çoklu iş parçacığı, birden çok barkodu aynı anda CPU çekirdekleri arasında işler.

Geliştiriciler sık sık Async ve Multithreading işlemlerini karıştırır. Her iki yöntem de sistem kaynaklarının kullanımını optimize ederek ve çalışma süresini azaltarak program performansını ve verimliliğini artırır. Ancak, yaklaşım, mekanizma ve kullanım durumları açısından farklılık gösterirler. IronBarcode her iki yaklaşımı da destekler. Bu makale, IronBarcode kullanılarak farklarını ve uygulamalarını keşfeder.

Hızlı Başlangıç: Async ve Çoklu İş Parçacıklı Barkod Okuma Örneği

IronBarcode ile hemen başlamanızı sağlayacak bu tek satırlık örneği kullanın. Barkod görüntülerini paralel olarak taramak için asenkron okuma ve çoklu iş parçacığı seçeneklerini nasıl kolayca birleştirebileceğinizi, minimal kurulumla gösterir.

  1. 1Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. 2Bu kod parçacığını kopyalayın ve çalıştırın.

    var results = await IronBarCode.BarcodeReader.ReadAsync(imagePaths, new IronBarCode.BarcodeReaderOptions { Multithreaded = true, MaxParallelThreads = 4, ExpectMultipleBarcodes = true });
    C#
  3. 3Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronBarcode kullanmaya başlayın
    arrow pointer

IronBarcode ile Barkodları Asenkron Olarak Nasıl Okurum?

Asenkron okuma, uzun veya bloklanabilen işlemlerin ana iş parçacığının yürütülmesini engellemeden devam etmesini sağlar. C#'ta, asenkron özellikleri destekleyen metotlarla async ve await anahtar kelimelerini kullanın. Bu yaklaşım ilave iş parçacıkları oluşturmaz, ancak mevcut iş parçacığını serbest bırakır. Ana iş parçacığı görevleri başlatır ve yönetir, ancak tek bir göreve özel olarak adanmış kalmaz. Asenkron yöntem müdahalesi gerektiğinde ana iş parçacığı döner, diğer görevlerle ilgilenmesine izin verir - özellikle dosya okuma/yazma gibi I/O tabanlı görevler veya ağ istekleri yapmak için yararlıdır.

Barkod okuma bir örnek olarak düşünün. Süreç şunları içerir:

  • Dosyayı okuma
  • Okuma seçeneklerini uygulama
  • Barkodu çözme

Dosya okuma sırasında ana görev serbest bırakılabilir. Bu, çok sayıda görüntü dosyası veya büyük PDF'ler olan senaryolarda fayda sağlar, barkod okuma öğreticimizde gösterildiği gibi.

Barkodları sırasıyla görüntüler ve PDF belgelerinden asenkron olarak okumak için ReadAsync ve ReadPdfAsync metotlarını kullanın. Asenkron işlemleri uygulamadan önce projede NuGet üzerinden IronBarcode'u yüklediğinizden emin olun.

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());
}

Yukarıdaki kod parçası, IronBarcode tarafından asenkron olarak okunacak görüntü yollarının bir List örneğini oluşturur. Görüntüleri okumak için, BarcodeReader sınıfından ReadAsync metodunu kullanın. imagePaths ve okuma seçeneklerini belirtin. İleri düzey yapılandırma seçenekleri için barkod okuyucu ayarları hakkındaki rehberimize başvurun.

Bu asenkron işlem metodu, aynı sınıfta ReadPdfAsync üzerinden PDF belgelerindeki barkodları okumak için de mevcuttur. Belirli PDF okuma yapılandırmaları için PDF barkod okuyucu ayarları rehberimize bakın.

Multithreaded
MaxParallelThreads

Normal Yöntemlere Göre Asenkron Okumayı Ne Zaman Kullanmalıyım?

Asenkron okuma, birkaç senaryoda mükemmeldir:

  1. GUI Uygulamaları: UI duyarlılığı gerektiren Windows Forms veya WPF uygulamaları. Asenkron, barkod taraması sırasında arayüz donmasını önler.

  2. Web Uygulamaları: Birkaç eşzamanlı isteği bloklamadan işleyen ASP.NET uygulamaları, özellikle yüklenen barkod görüntüleri işlendiğinde.

  3. Toplu İşleme: Birden fazla barkod görüntüsünü veya PDF'leri sıralı okuma, I/O işlemleri sırasında diğer görevlerin yürütülmesine izin verir.

  4. Ağ İşlemleri: Uzak kaynaklardan ya da URL'lerden barkod okuma, URL'den asenkron barkod okuma örneğimizde gösterildiği gibi.

Asenkron Okuma Neden Uygulama Duyarlılığını İyileştirir?

Asenkron okuma, I/O tabanlı işlemler sırasında ana iş parçacığını serbest bırakarak duyarlılığı artırır. IronBarcode bir görüntü dosyasını diskte okuduğunda ya da bir PDF'yi işlerken, iş parçacığı boşta beklemez. Bunun yerine, kullanıcı girdilerine yanıt verme veya istekleri işleme gibi diğer görevlerle ilgilenir. Bu, özellikle şu durumlarla ilgilidir:

  • Yüklenmesi için önemli miktarda zaman gerektiren büyük görüntü dosyaları
  • Çok sayıda sayfa içeren barkodlara sahip PDF'ler
  • Ağ tabanlı görüntü kaynakları
  • Barkod algılamadan önce görüntü düzeltme filtreleri gerektiren senaryolar

Asenkron Barkod Okuma Kullanımında Yaygın Tuzaklar Nelerdir?

Asenkron barkod okuma uygularken, bu yaygın sorunlara dikkat edin:

  1. Deadlocks: UI bağlamlarında asenkron metotlarda Result veya Wait() 'tan kaçının. Çağrı zinciri boyunca her zaman await kullanın.

  2. Hata Yönetimi: Asenkron yöntemlerdeki istisnalar beklendiği gibi yayılmayabileceğinden, asenkron çağrıları try-catch bloklarına yerleştirin.

  3. Bağlam Değiştirme: Orijinal senkronizasyon bağlamına geri dönmeniz gerekmiyorsa, ConfigureAwait(false) kullanımını düşünün.

  4. Performans Yanılgıları: Asenkron, bireysel işlemleri hızlandırmaz; uygulama duyarlılığını geliştirir. Birden fazla görüntüyle hız iyileştirmeleri için, çoklu iş parçacığını düşünün.

Asenkron ile ilgili sorun gidermeleri için barkod tanıma sorun giderme rehberimize danışın.

Çoklu İş Parçacıklı Barkod Okumayı Nasıl Etkinleştiririm?

Asenkron işlemlerden farklı olarak, çoklu iş parçacığı tek bir işlemi eşzamanlı olarak birden fazla iş parçacığı üzerinde yürütür. Tek bir iş parçacığında sırayla yürütme yerine, çoklu iş parçacığı görevleri birden fazla iş parçacığı arasında böler ve eşzamanlı yürütülmeye olanak tanır. Çoklu iş parçacığı, iş parçacıklarını bağımsız olarak yürüten birden fazla CPU çekirdeği gerektirir. Asenkron işlemler gibi, çoklu iş parçacığı da uygulama performansını ve duyarlılığını arttırır.

IronBarcode'da, Multithreaded özelliğini ayarlayarak çoklu iş parçacığını etkinleştirin ve BarcodeReaderOptions içinde MaxParallelThreads kullanarak eş zamanlı yürütme için maksimum çekirdekleri belirtin. Varsayılan MaxParallelThreads değeri 4'tür, mevcut CPU çekirdeklerine göre ayarlanabilir. Optimal performans yapılandırmaları için okuma hızı seçenekleri rehberimize başvurun.

Lütfen dikkate alın: Mevcut çekirdekleri bulmak için: Görev Yöneticisi -> Performans sekmesi -> CPU'ya tıkla. 'Çekirdekler' alanı sayıyı gösterir.
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());
}

Ne Kadar Performans İyileşmesi Bekleyebilirim?

Hadi iki örnek görüntü üzerinde okuma yapalım ve normal, asenkron ve çoklu iş parçacıklı işlemler arasındaki okuma sürelerini karşılaştıralım.

Örnek Görüntü

Çoklu iş parçacıklı barkod okuma gösterimi için 0 123456 789012 sayısını gösteren UPC-A barkod örneği
Çoklu iş parçacıklı barkod okuma gösterimi için 771234567003 sayısını gösteren UPC-A barkod örneği
Normal OkumaAsenkron OkumaÇok İplikli Okuma (4 çekirdek)
01,75 saniye01,67 saniye01,17 saniye

Karşılaştırma, asenkron ve çoklu iş parçacıklı okuma ile önemli performans artışları gösteriyor. Çoklu iş parçacıklarının normal okumaya göre yaklaşık %33, asenkron işlemlerin ise yaklaşık %5 iyileşme sağladığını görüyoruz. Ancak, bu operasyonlar farklı amaçlara ve yaklaşımlara hizmet eder. Uygulama gereksinimlerinize en uygun yaklaşımı seçin.

Performans iyileştirmeleri şunlara bağlı olarak değişir:

  • İşlenen görüntü sayısı
  • Görüntü karmaşıklığı ve barkod kalitesi
  • Kullanılabilir CPU çekirdekleri
  • Diğer sistem kaynakları

Tek bir belgede birden fazla barkod durumu için, Birden Fazla Barkod Okuma kılavuzunu ziyaret edin.

Ne Zaman Asenkron İşlemler Üzerine Çoklu İş Parçacığını Seçmeliyim?

Çoklu iş parçacığı seçin:

  1. CPU-Bound Operations: İşleme, karmaşık görüntü filtreleri veya yüksek çözünürlüklü görüntüler gibi yoğun hesaplama içerir
  2. Batch Processing: Birden fazla bağımsız görüntü eşzamanlı işleme gerektirir
  3. Multi-Core Systems: Dağıtım ortamında birden fazla CPU çekirdeği mevcut
  4. Performance Critical: Ham işlem hızı, kaynak verimliliğinden daha önemlidir

Asenkron işlemleri seçin:

  1. I/O-Bound Operations: Çoğu zaman dosya okuma veya ağ yanıtlarını bekleme ile geçer
  2. UI Applications: Duyarlı kullanıcı arayüzlerini korumak çok önemlidir
  3. Limited Resources: Sınırlı CPU çekirdeğine sahip sistemlerde çalıştırma
  4. Web Uygulamaları: Birden fazla eşzamanlı isteği verimli bir şekilde yönetir.

En İyi MaxParallelThreads Değerini Nasıl Belirlerim?

En uygun MaxParallelThreads değeri birkaç faktöre bağlıdır:

  1. Mevcut CPU Çekirdekleri: Environment.ProcessorCount ile başlayın
  2. Workload Type: Salt barkod okuma için mevcut çekirdeklerin %75'ini kullanın
  3. System Resources: İşletim sistemi ve diğer işlemler için boşluk bırakın
  4. Testing Results: Özellikle iş yükünüzle karşılaştırma yapın

En iyi değeri bulmanın pratik bir yaklaşımı:

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

Üretim ortamlarında, performansı izleyin ve gerçek kullanım desenlerine göre ayarlayın. Maksimum performans gerektiren kurumsal dağıtımlar için lisans anahtar yapılandırmasını incelemeyi düşünün.

IronBarcode API Referansı tam API yetenekleri için başvurun.

Sıkça Sorulan Sorular

Barkod okuma sırasında async ve çoklu iş parçacığı arasındaki fark nedir?

IronBarcode ile async işlemler, dosya okuma gibi I/O görevleri sırasında ana iş parçacığını engellemekten kaçınırken, çoklu iş parçacığı, birden fazla barkodu aynı anda CPU çekirdekleri üzerinden işler. Async, uzun işlemler sırasında ana iş parçacığını serbest bırakmak için async/await anahtar kelimelerini kullanırken, çoklu iş parçacığı paralel işlemek için birden fazla iş parçacığı oluşturur.

C#'da asenkron barkod okuma nasıl uygulanır?

IronBarcode, asenkron barkod okuma için ReadAsync() ve ReadPdfAsync() yöntemlerini sağlar. Ana iş parçacığını engellemeden görüntülerden ve PDF'lerden barkodları okumak için C#'da bu yöntemleri async/await anahtar kelimeleriyle kullanın. Bu, birden fazla görüntü dosyası veya büyük PDF belgeleri işlerken özellikle faydalıdır.

Barkod işleme için çoklu iş parçacığını nasıl etkinleştirebilirim?

IronBarcode'da çoklu iş parçacığını etkinleştirmek için, BarcodeReaderOptions içinde Multithreaded özelliğini 'true' olarak ayarlayın. Ayrıca, sisteminizin kapasitesine göre performansı optimize etmenize olanak tanıyan paralel iş parçacığı sayısını MaxParallelThreads özelliğini kullanarak kontrol edebilirsiniz.

Asenkron ve çoklu iş parçacığını en iyi performans için birleştirebilir miyim?

Evet, IronBarcode her iki yaklaşımı da birleştirmenize olanak tanır. Multithreaded = true ayarlayarak etkinleştirilmiş çoklu iş parçacığı ile ReadAsync() kullanabilir ve BarcodeReaderOptions içinde MaxParallelThreads'i yapılandırabilirsiniz. Bu kombinasyon, hem engellemeyen I/O işlemlerini hem de birden fazla CPU çekirdeği üzerinde paralel işlemeyi sağlar.

Barkod okuma için ne zaman async ne zaman çoklu iş parçacığı kullanmalıyım?

IronBarcode'da büyük dosyalar okuma veya ağ istekleri yapma gibi I/O bağlı görevleri ile ilgilenirken async işlemleri kullanın; çünkü bu, UI donmasını önler. Aynı anda birden fazla barkodu işlemeniz gerektiğinde ve kullanılabilir CPU kaynaklarınız olduğunda çoklu iş parçacığı kullanın. En iyi sonuçlar için, birden fazla büyük barkod görüntüsü veya PDF işlerken her iki yaklaşımı da birleştirin.

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.

Başlamaya Hazır mısınız?

Nuget Downloads 2,422,100Sürüm:2026.9yeni yayınlandı

ÜCRETSİZİNİZİ EDİNİN

30 günlük Deneme Anahtarınızı anında edinin.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmez
bullet_testÜretimde Test
filigran olmadan
bullet_calendar30 gün tamamen
işlevsel ürün
bullet_supportDeneme sırasında teknik
24/5 destek
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez
PDF için C# NuGet Kütüphanesi
NuGet ile yükleyin

Sürüm: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. Çözüm Gezgini'nde Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet
  2. Gözat'ı seçin ve "IronBarCode" arayın
  3. Paketi seçin ve yükleyin
C# PDF DLL
DLL İndir

Sürüm: 2026.9

  1. ~/Libs gibi bir yere, Çözüm dizininizde IronBarCode'u indirip çıkarın
  2. Visual Studio Çözüm Gezgini'nde, Başvurulara sağ tıklayın. Gözat'ı seçin, "IronBarCode.dll"

$999 adresinden lisanslar

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez