IronOCR ile C# Asenkron ve Çoklu İş Parçacığı Desteği
IronOCR, tüm CPU çekirdeklerinde çoklu iş parçacığını otomatik olarak yönetir ve ReadAsync() gibi asenkron yöntemler sunarak ana iş parçacığınızı engellemeden OCR işlemini gerçekleştirir, böylece büyük belgeler işlenirken uygulamaların hızlı yanıt vermesini sağlar.
Giriş
Büyük miktarda metin verisini verimli bir şekilde işlemek, OCR operasyonları için hem doğruluk hem de hız gerektirir. Bu makale, IronOCR ve Tesseract'ta asenkron destek ve çoklu iş parçacığını kapsar. Asenkron programlama, OCR işlemlerinin engellenmeden çalışmasını sağlayarak, metin tanıma görevleri sırasında uygulamaların yanıt verebilirliğini korur. Ç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 iyileştirmelerine yardımcı olur.
Hızlı Başlangıç: Zahmetsiz Asenkron OCR için ReadAsync kullanın
Ana iş parçacığınızı engellemeden OCR işlemi gerçekleştirmek için IronTesseract'nin ReadAsync yöntemini kullanın. Bu, uygulamanıza hızla yanıt verebilir, engellenmeyen OCR ekler. Özellikle PDF belgeleri işlerken veya aynı anda birden çok resim dosyası ile çalışırken iyi sonuç verir.
-
IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronOcr -
Bu kod parçacığını kopyalayın ve çalıştırın.
var result = await new IronOcr.IronTesseract().ReadAsync("image.png"); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın
Asgari İş Akışı (5 adım)
- Asenkron ve çoklu iş parçacığı desteğine sahip Tesseract'ı destekleyen bir C# kütüphanesi indirin
- IronOCR tarafından yönetilen çoklu iş parçacığını kullanın
- PDF belgesini ve resmi okumaya hazırlayın
- Asenkron eşzamanlılık avantajlarından yararlanmak için
OcrReadTaskNesnesini kullanın - Kullanım kolaylığı için
ReadAsyncyöntemini kullanın
IronOCR'de Çoklu İş Parçacığı Nasıl Çalışır?
IronOCR, görüntü işleme ve OCR okuma verimliliğini sorunsuz çoklu iş parçacığı ile artırır ve geliştiricilerden özel bir API gerektirmez. IronTesseract, birden fazla çekirdekteki tüm kullanılabilir iş parçacıklarını otomatik olarak kullanarak, hızlı OCR yürütme için sistem kaynaklarını optimize eder. Bu yerleşik çoklu iş parçacığı, geliştirmeyi basitleştirir ve doğrudan OCR iş akışına paralellik entegre ederek performansı önemli ölçüde artırır.
Kütüphanenin çoklu iş parçacıklı Tesseract uygulaması, şu kilit avantajları sağlar:
- Otomatik CPU çekirdeği kullanımı: IronOCR, manuel yapılandırma gerektirmeden tüm kullanılabilir çekirdekleri algılar ve kullanır
- İş parçacığı güvenli işlemler: Tüm OCR işlemleri varsayılan olarak iş parçacığı güvenli olacak şekilde tasarlanmıştır
- Optimum kaynak yönetimi: Bellek ve işlem kaynakları iş parçacıkları arasında verimli bir şekilde dağıtılır
- Ölçeklenebilir performans: İşleme süresi, mevcut çekirdek sayısıyla orantılı olarak azalır
İşte C#'ta ç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
Hızlı OCR yapılandırması gerektiren gelişmiş senaryolar için, geliştiriciler, doğruluğu korurken belirli performans gereksinimlerine uyacak şekilde çoklu iş parçacığı davranışını ince ayarlayabilir.
IronOCR'de Asenkron Destek Nasıl Kullanılır?
Asenkron programlama, geliştiricilerin OCR görevlerini ana iş parçacığını bloklamadan yürütmelerine olanak tanıyarak OCR performansını optimize eder. Bu, büyük belgeler veya görüntüleri metin tanıma için işlerken uygulamaların yanıt verebilirliğini korur. Asenkron destek, OCR operasyonları arka planda çalışırken sistemin diğer görevleri yönetmesine olanak tanır. Bu kapasite, kullanıcı arayüzlerinde OCR ilerleme takibi uygulanırken hayati öneme sahiptir.
Bu bölüm, IronOCR'deki asenkron destek entegrasyonunu kapsar ve OCR hizmetlerini engellenmeyen hale getirmek için farklı yöntemler gösterir. IronOCR'un asenkron yetenekleri, OCR operasyonları sırasında yanıt verebilirlik gerektiren masaüstü uygulamaları ve birden çok eşzamanlı OCR isteğini işleyen web hizmetleri için optimal performansı sağlar.
OcrReadTask Nesnelerini Ne Zaman Kullanmalıyım?
OcrReadTask nesneleri, IronOCR ile OCR süreçlerinde kontrol ve esnekliği artırır. Bu nesneler, metin tanıma görevlerinin verimli yönetimini sağlayarak OCR işlemlerini kapsüller. Bu bölüm, IronOCR iş akışınızda OcrReadTask nesnelerinin kullanımını gösterir ve bunların OCR görevlerini nasıl başlattığını ve optimize ettiğini açıklar. OcrReadTask nesneleri, karmaşık belge işleme süreçlerini koordine ederken veya uygulama yanıt hızını ince ayarlarken IronOCR'nin yeteneklerini en üst düzeye çıkarmaya yardımcı olur.
OcrReadTask nesneleri şu durumlarda en iyi şekilde çalışır:
- Görev yürütme üzerinde hassas kontrol gerektiğinde
- Durdurulabilir işlemler için abort token işlevselliği uygulanırken
- Farklı önceliklere sahip birden fazla eşzamanlı OCR operasyonu yönetilirken
- Özel görev zamanlayıcıları veya iş akışı motorlarıyla entegre edilirken
: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
'}
ReadAsync Yöntemini Nasıl Kullanırım?
ReadAsync(), OCR işlemlerini eşzamansız olarak başlatmak için doğrudan bir mekanizma sağlar. Geliştiriciler, karmaşık iş parçacığı veya görev yönetimi olmadan asenkron OCR'yi uygulamalarına entegre edebilir. Bu yöntem, OCR görevleri sırasında ana iş parçacığının bloklanmasını engeller ve böylece uygulamaların yanıt verebilir kalmasını sağlar.
ReadAsync yöntemi şu durumlarda iyi sonuç verir:
- UI yanıt verebilirliğini koruması gereken masaüstü uygulamaları
- Aynı anda birden fazla OCR isteği işleyen web uygulamaları
- İlerleme takibinin önemli olduğu toplu işleme senaryoları
- Modern async/await kalıplarıyla .NET uygulamalarına 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
'}
Neden IronOCR ile Asenkron ve Çoklu İş Parçacığı Kullanmalıyım?
IronOCR'de asenkron destek ve çoklu iş parçacığı kombinasyonu, modern uygulama geliştirme için birçok avantaj sağlar:
Performans Avantajları:
- Geliştirilmiş Verimlilik: Birden çok belgeyi aynı anda bloklamadan işleyin
- Daha İyi Kaynak Kullanımı: Kullanılabilir tüm çekirdekler arasında CPU kullanımını en üst düzeye çıkarın
- Azaltılmış Gecikme: Önceki işlemlerin tamamlanmasını beklemeden hemen işlemeye başlayın
- Ölçeklenebilir Mimari: Artan iş yüklerini mimari değiştirmeden yönetin
Geliştirme Avantajları:
- Basitleştirilmiş Kod: İş parçacıklarını manuel yönetmeye gerek yok - IronOCR karmaşıklığı halleder
- Modern Kalıplar: Tesseract 5 .NET için içindeki async/await kalıplarını tam destekler
- Kolay Entegrasyon: Mevcut .NET asenkron yapılarıyla sorunsuz çalışır
- Sürdürülebilir Çözümler: .NET en iyi uygulamalarını takip eden net, okunabilir kod
IronOCR'de çoklu iş parçacığı, OCR görevlerini önemli ölçüde optimize eder. Yerleşik çoklu iş parçacığı yetenekleri, ReadAsync() gibi yöntemlerle birleştirildiğinde, büyük hacimli metin verilerinin işlenmesini basitleştirir. Bu kombinasyon, uygulamaların yanıt verebilir ve verimli kalmasını sağlar ve IronOCR'yi sistematik metin tanıma kabiliyetlerine sahip yüksek performanslı yazılımlar oluşturmak için etkili bir araç haline getirir. Tam özellik seti ile başlamak için, NuGet paket kurulum kılavuzumuzu inceleyin.
Sıkça Sorulan Sorular
C# ile ana iş parçacığımı engellemeden OCR işlemini nasıl eşzamansız yapabilirim?
IronOCR, bloklamayan OCR yürütmesini sağlayan ReadAsync yöntemini sunar. `var result = await new IronOcr.IronTesseract().ReadAsync("image.png");` ifadesini kullanarak, belgeleri işlerken uygulamanızın duyarlı kalmasını sağlayarak OCR işlemini asenkron olarak gerçekleştirebilirsiniz.
OCR, daha iyi performans için otomatik olarak birden fazla CPU çekirdeği kullanır mı?
Evet, IronOCR yerleşik çoklu iş parçacığı sayesinde mevcut tüm CPU çekirdeklerinden otomatik olarak yararlanır. IronTesseract uygulaması, manuel yapılandırma gerektirmeden tüm çekirdekleri algılar ve kullanır, bu da optimize edilmiş kaynak yönetimi ve ölçeklenebilir performans sağlar.
OCR işlemede çok iş parçacığı kullanmanın başlıca faydaları nelerdir?
IronOCR'un çok iş parçacıklı uygulaması, otomatik CPU çekirdek kullanımı, varsayılan olarak iş parçacığı güvenli operasyonlar, bellek ve işlem için optimize edilmiş kaynak yönetimi, ve mevcut çekirdeklerle orantılı olarak azalan işlem süresi ile ölçeklenebilir performans sunar.
Asenkron OCR ile çoklu PDF belgelerini aynı anda işleyebilir miyim?
Evet, IronOCR'nin ReadAsync yöntemi, PDF belgelerini işlerken veya aynı anda birden fazla resim dosyası ile çalışırken özellikle iyi çalışır ve uygulamanızı bloke etmeden aynı anda birden fazla belgeyi işlemenizi sağlar.
OCR için çoklu iş parçacığı desteğini etkinleştirmek amacıyla özel bir 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 doğrudan OCR iş akışına sorunsuz bir şekilde entegre eder ve optimal performans için birden fazla çekirdekte iş parçacıklarını otomatik olarak yönetir.
OcrReadTask Nesnesi nedir ve eşzamanlı olmayan işlemeye nasıl yardımcı olur?
IronOCR'deki OcrReadTask Nesnesi, belgeleri işlerken eşzamanlı asenkronluğun avantajlarından yararlanmanıza olanak tanır. Kütüphane, alttaki çoklu iş parçacığı karmaşıklığını yönetirken, OCR işlemlerini asenkron olarak kontrol etmenizi sağlar.
IronOCR, .NET 10 ile tamamen uyumlu mu?
IronOCR, en son 2025.12 sürümüyle .NET 10'i desteklemektedir. Kütüphaneyi NuGet kullanarak (Install-Package IronOcr) yükleyebilir ve ReadAsync() gibi async metotları .NET 10 altında özel bir yapılandırmaya gerek kalmadan çalıştırabilirsiniz.
IronOCR'yi belge yönetimi için kullanmanın faydaları nelerdir?
IronOCR'yi belge yönetimi için kullanmak, taranmış belgeleri aranabilir ve düzenlenebilir metne dönüştürerek iş akışını hızlandırır, manuel veri giriş ihtiyacını azaltır ve belge erişilebilirliğini artırır.
IronOCR veri doğruluğunu nasıl artırabilir?
IronOCR, gelişmiş tanıma algoritmaları ve görüntü düzeltme özellikleriyle veri doğruluğunu artırır, böylece metin çıkarım sürecinin hem güvenilir hem de kesin olmasını sağlar.
IronOCR için ücretsiz bir deneme mevcut mu?
Evet, Iron Software, IronOCR'nin özelliklerini ve yeteneklerini, bir satın alma kararı vermeden önce test edebilmek için ücretsiz bir deneme sunar.

