C# | IronOCR'da Asenkron ve Çoklu Is Parcacigi'ni Nasıl Kullanabilirim

C# Async & IronOCR ile Çoklu iş Parçacığı Desteği

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

IronOCR, tüm CPU çekirdeklerinde çoklu iş parçacığını otomatik olarak yönetir ve uygulamalarınızın büyük belgeleri işlerken yanıt vermesini sağlarken, ana iş parçacığınızı engellemeden OCR gerçekleştirmek için ReadAsync() gibi async yöntemler sunar.

Giriş

Büyük hacimli metin verilerini verimli bir şekilde işlemek için OCR işlemleri hem doğruluk hem de hız gerektirir. Bu makale, IronOCR ve Tesseract'ta async desteği ve çoklu iş parçacığını ele alır. Asenkron programlama, metin tanıma görevleri sırasında uygulamaları duyarlı tutarak engellemeyen OCR yürütmeyi mümkün kılar. Çoklu iş parçacığı, OCR performansını önemli ölçüde artırmak için paralellik sağlar. Bu teknikler, geliştiricilerin OCR destekli uygulamaların verimliliğini ve yanıt verebilirliğini artırmalarına yardımcı olur.

Hızlı Başlangıç: Kolay Async OCR için ReadAsync Kullanın

Ana iş parçacığınızı engellemeden OCR gerçekleştirmek için IronTesseract'ın ReadAsync yöntemini kullanın. Bu, uygulamanıza hızlı ve engellemeyen OCR ekler. Bu yöntem, özellikle PDF belgelerini işlerken veya aynı anda birden fazla görüntü dosyasını işliyorken iyi çalışır.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronOcr yükleyin

    PM > Install-Package IronOcr
  2. Bu kod parçasını kopyalayıp çalıştırın.

    var result = await new IronOcr.IronTesseract().ReadAsync("image.png");
  3. Canlı ortamınızda test etmek için dağıtın

    Bugün projenizde IronOCR kullanmaya başlayın ücretsiz deneme ile

    arrow pointer

IronOCR'da Çoklu iş Parçacığı Nasıl Çalışır?

IronOCR, geliştiricilerden özel bir API gerektirmeyen sorunsuz çoklu iş parçacığı ile görüntü işlemesini ve OCR okuma verimliliğini artırır. IronTesseract, sistem kaynaklarını hızlı OCR yürütmesi için optimize ederek, birden fazla çekirdekteki mevcut tüm iş parçacıklarını otomatik olarak kullanır. Bu yerleşik çoklu iş parçacığı, geliştirmeyi basitleştirir ve paralellik doğrudan OCR iş akışına entegre edilerek performansı önemli ölçüde artırır.

Kütüphanenin çoklu iş parçacıklı Tesseract uygulaması bu anahtar avantajları sağlar:

  • Otomatik CPU çekirdeği kullanımı: IronOCR, tüm kullanılabilir çekirdekleri manuel yapılandırma olmadan algılar ve kullanır
  • İş parçacığı güvenli işlemler: Tüm OCR işlemleri varsayılan olarak iş parçacığı güvenli şekilde tasarlanmıştır
  • Optimize edilmiş kaynak yönetimi: Bellek ve işlem kaynakları iş parçacıkları arasında verimli şekilde dağıtılır
  • Ölçeklenebilir performans: İşleme süresi, mevcut çekirdek sayısıyla orantılı olarak azalır

İşte C# dilinde çoklu iş parçacıklı bir okuma örneği:

: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

hızlı OCR yapılandırması gerektiren gelişmiş senaryolar için, geliştiriciler, doğruluk korurken belirli performans gereksinimlerine uymak için çoklu iş parçacığı davranışını ince ayar yapabilir.

IronOCR'da Async Desteği Nasıl Kullanılır?

Asenkron programlama, geliştiricilerin ana iş parçacığını engellemeden OCR görevlerini yürütmesine olanak tanıyarak OCR performansını optimize eder. Bu, metin tanıma için büyük belgeleri veya görüntüleri işlerken uygulamaların yanıt vermesini sağlar. Async destek, OCR işlemleri arka planda çalışırken sistemin diğer görevleri de gerçekleştirmesine olanak tanır. Bu yetenek, kullanıcı arabirimlerinde OCR ilerleme takibi uygulandığında çok önemlidir.

Bu bölüm, IronOCR'da async destek entegrasyonunu ve OCR hizmetlerini engellemez hale getirmenin farklı yöntemlerini gösterir. IronOCR'un async yetenekleri, OCR işlemleri sırasında yanıt verme gerektiren masaüstü uygulamaları ve birden fazla eşzamanlı OCR isteğini işleyen web hizmetleri için en iyi performansı sağlar.

OcrReadTask Objesini Ne Zaman Kullanmalıyım?

OcrReadTask nesneleri, IronOCR ile OCR işlemlerinde kontrol ve esnekliği artırır. Bu objeler, metin tanıma görevlerinin verimli yönetimini sağlamak için OCR işlemlerini kapsar. Bu bölüm, IronOCR iş akışınızda OcrReadTask nesnelerini kullanmayı gösterir ve bunların OCR görevlerini nasıl başlattığını ve optimize ettiğini gösterir. OcrReadTask nesneleri, karmaşık belge işlemlerini düzenlerken veya uygulama yanıtını incelerken IronOCR yeteneklerini maksimize etmeye yardımcı olur.

OcrReadTask nesneleri en iyi şu durumlarda çalışır:

  • Görev yürütülmesi üzerinde ince ayarlı kontrol gerekiyor
  • İptal edilebilir işlemler için iptal belirteci işlevselliği uygulama
  • Farklı önceliklere sahip birden fazla eşzamanlı OCR işlemini yönetme
  • Özel görev zamanlayıcıları veya iş akışı motorları ile entegrasyon
: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 Yöntemini Nasıl Kullanırım?

ReadAsync(), OCR işlemlerinin eşzamansız başlatılması için doğrudan bir mekanizma sağlar. Geliştiriciler, karmaşık iş parçacığı veya görev yönetimi olmadan eşzamansız OCR'i uygulamalarına entegre edebilir. Bu yöntem, OCR görevleri sırasında ana iş parçacığının engellenmesini önler ve uygulamaların duyarlı kalmasını sağlar.

ReadAsync yöntemi şu durumlarda iyi çalışır:

  • Kullanıcı arayüzü yanıt verebilirliğini sürdürmesi gereken masaüstü uygulamaları
  • Birden fazla eşzamanlı OCR isteği işleyen web uygulamaları
  • ilerleme takibinin önemli olduğu toplu işleme senaryoları
  • .NET uygulamalarında modern async/await desenleriyle entegrasyon
: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 ile Neden Eşzamansızlık ve Çoklu İş parçacığı Kullanmalıyım?

IronOCR içinde eşzamansız desteği ve çoklu iş parçacığını birleştirmek, modern uygulama geliştirme için çeşitli faydalar sağlar:

Performans Faydaları:

  • Gelişmiş İşlem Hacmi: Engellenmeden birden çok belgeyi aynı anda işleme
  • Daha İyi Kaynak Kullanımı: Tüm mevcut çekirdekler üzerinde CPU kullanımını maksimize etme
  • Azaltılmış Gecikme: Önceki işlemlerin tamamlanmasını beklemeden hemen işlemeye başlama
  • Ölçeklenebilir Mimari: Mimari değişiklik gerektirmeden artan iş yüklerini yönetme

Geliştirme Faydaları:

  • Basitleştirilmiş Kod: İş parçacıklarını manuel olarak yönetmeye gerek yok - IronOCR karmaşıklığı üstlenir
  • Modern Desenler: Tesseract 5 for .NET içindeki async/await desenleri için tam destek
  • Kolay Entegrasyon: Mevcut .NET async altyapısıyla sorunsuz çalışır
  • Sürdürülebilir Çözümler: .NET en iyi uygulamalarını takip eden açık, okunabilir kod

IronOCR'da çoklu iş parçacığı, OCR görevlerini önemli ölçüde optimize eder. ReadAsync() gibi yöntemlerle birleştirildiğinde, yerleşik çoklu iş parçacığı yetenekleri, büyük hacimli metin veri işlenmesini basitleştirir. Bu kombinasyon, uygulamaların duyarlı ve verimli kalmasını sağlayarak, IronOCR'u metin tanıma yetenekleriyle yüksek performanslı yazılımlar oluşturmak için etkili bir araç haline getirir. Tam özellik seti ile başlamak için NuGet paketi kurulum kılavuzumuza göz atın.

Sıkça Sorulan Sorular

Ana iş parçacığımı engellemeden C# dilinde OCR işlemlerini nasıl asenkron yapabilirim?

IronOCR, engellemeyen OCR yürütmesini sağlayan ReadAsync metodunu sağlar. Belgeleri işlerken uygulamanızı duyarlı tutarak `var result = await new IronOcr.IronTesseract().ReadAsync("image.png");` kullanarak OCR'yi asenkron gerçekleştirebilirsiniz.

OCR, daha iyi performans için otomatik olarak birden fazla CPU çekirdeğini kullanıyor mu?

Evet, IronOCR yerleşik çoklu iş parçacığı aracılığıyla mevcut tüm CPU çekirdeklerini otomatik olarak kullanır. IronTesseract sürümü, özelleştirilmiş kaynak yönetimi ve ölçeklenebilir performans sunarak tüm çekirdekleri algılar ve kullanır, manuel yapılandırma gerektirmez.

OCR işlemede çoklu iş parçacığının ana faydaları nelerdir?

IronOCR'un çoklu iş parçacıklı uygulaması, varsayılan olarak iş parçacığı güvenli işlemleri, bellek ve işleme için optimize edilmiş kaynak yönetimi ve uygun çekirdekler ile ölçeklenebilir performans sunarak, otomatik CPU çekirdek kullanımını sağlar.

Async OCR ile aynı anda birden fazla PDF belgesi işleyebilir miyim?

Evet, IronOCR'un ReadAsync metodu, birden fazla belgeyi aynı anda işleyerek PDF belgelerini veya birden fazla görüntü dosyasını aynı anda işlerken uygulamanızı engellemeden işleyebilirsiniz.

OCR için çoklu iş parçacığını etkinleştirmek için özel kod yazmam gerekiyor mu?

Hayır, IronOCR çoklu iş parçacığı için özel bir API veya manuel yapılandırma gerektirmez. Kütüphane, paralelliği OCR iş akışına doğrudan entegre eder, optimal performans için birden fazla çekirdekte iş parçacıklarını otomatik yönetir.

OcrReadTask Nesnesi nedir ve asenkron işlemde nasıl yardımcı olur?

IronOCR'daki OcrReadTask Nesnesi, belgeleri işlerken asenkron eşzamanlılıktan yararlanmanızı sağlar. Kütüphane, temel çoklu iş parçacığı karmaşıklıklarını yönetirken OCR işlemlerini asenkron olarak yönetmenizi sağlar.

IronOCR .NET 10 ile tam uyumlu mu?

.NET 10, IronOCR tarafından en son sürüm olan 2025.12 ile desteklenir. Kütüphaneyi NuGet kullanarak yukleyebilirsiniz (Install-Package IronOcr) ve ReadAsync() gibi asenkron metodları .NET 10 altında özel bir yapılandırma olmadan çalıştırabilirsiniz.

Chipego
Yazılım Mühendisi
Chipego, müşteri sorunlarını anlamasına ve akıllı çözümler sunmasına yardımcı olan doğal bir dinleme becerisine sahiptir. 2023 yılında Iron Software ekibine katıldı ve Bilgi Teknolojileri alanında Bilim Lisansı aldı. Chipego’nun odaklandığı iki ürün IronPDF ve IronOCR'dur, ancak tü...
Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,585,834 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronOcr
örnekleri çalıştır resminizin aranabilir metne donuşünü izleyin.