IRONSOFTWAREHOME

Iron Suite for .NET

10 .NET kütüphanesi. Tek bir tam belge suiti.

IRONPDF
IRONWORD
IRONXL
IRONPPT
IRONOCR
IRONBARCODE
IRONQR
IRONPRINT
IRONZIP
IRONWEBSCRAPER
IRON SUITE KULLANIMI

HTML'den PDF'e .NET 10'da Nasıl Yapılır

Curtis Chau
Curtis Chau
Updated: 21 Nisan 2026

Modern .NET geliştiricileri, IronPDF, IronOCR, IronWord ve IronXL gibi kütüphaneleri entegre ederken sıklıkla eşzamanlı olmayan programlamayla çalışır. Bu ürünler genellikle PDF oluşturma, OCR içeriği işleme veya büyük elektronik tablolar oluşturma gibi uzun süreli görevler çalıştırır ve uygulamaların yanıt vermeye devam etmesini sağlamanın doğru yolu C# CancellationToken tabanlı iptal kullanmaktır.

Bu makale, iptal tokenlerini nasıl kullanacağınızı, bir yöntemin bir token alması, görev iptalini nasıl ele alınacağını ve bu modelleri Iron Software kütüphaneleriyle uygun ve zamanında nasıl entegre edeceğinizi açıklar. Ayrıca en iyi uygulamaları, kaynak yönetimini, ve birden fazla İptal Tokeni'ni eşzamanlı olarak nasıl kullanacağımızı ele alıyoruz.

Iron Software İş Yüklerinde İptal İsteklerinin Önemi

Iron Software

Iron Software araçları sıkça asenkron işlemler çalıştırır - örneğin:

Bunlar, bir kullanıcı İptal düğmesine bastığında, başka bir sayfaya geçtiğinde veya çağrılan kod bir İptal İsteği gönderdiğinde nazikçe sonlandırılması gereken uzun süreli işlemler olabilir.

İptal tokenlerini kullanmak şunları sağlar:

  • Duyarlı uygulamalar
  • Daha iyi kaynak yönetimi
  • Yönetilmeyen kaynakların kontrollü salıverilmesi
  • Temiz bir işbirlikli iptal modeli

C# CancellationToken Temellerini Anlamak

C#, bir İptalToken token oluşturan CancellationTokenSource sınıfını sağlar. Bir CTS new CancellationTokenSource() , asenkron yöntemlere iletilecek bir token oluşturabilir.

var cts = new CancellationTokenSource();
CancellationToken token = cts.Token;

Bir token, bir yöntem parametresi kullanılarak iletilir:

public async Task ProcessPdfAsync(string html, CancellationToken token)

Yöntem içinde periyodik olarak kontrol edersiniz:

token.ThrowIfCancellationRequested();

veya IsCancellationRequested özelliğini inceleyin:

if (token.IsCancellationRequested)
{
    Console.WriteLine("Cancellation requested.");
    return;
}

Bu, işlemin iptal edilen olayının yalnızca kodunuz tokeni kontrol ettiğinde gerçekleştiği ortak bir iptal modeli sağlar.

IronPDF ile CancellationToken Kullanımı

IronPDF'nin HTML işleme bileşeni eşzamanlı olmayan programlama için tasarlanmıştır, bu nedenle iptali doğallıkla entegre edebilirsiniz.

public async Task<PdfDocument> BuildPdfAsync(string html, CancellationToken token)
    {
        Console.WriteLine("\n[Generator] Starting PDF rendering process...");
        var renderer = new ChromePdfRenderer();

        token.ThrowIfCancellationRequested();

        Console.WriteLine("[Generator] Simulating a 2-second delay...");
        await Task.Delay(2000, token);

        token.ThrowIfCancellationRequested();

        Console.WriteLine("[Generator] Delay complete. Starting actual rendering...");

        // This is the working overload for your library version
        return await renderer.RenderHtmlAsPdfAsync(html);
    }

Örnek Konsol Çıkışı

Konsol çıktısı

Bu, birden fazla noktada iptali destekleyen genel bir async Görevi gösterir. İptal gerçekleştiğinde, yöntem bir OperationCanceledException fırlatır ve bu durumu bir catch bloğunda ele alırsınız.

IronOCR ile CancellationToken Kullanımı

IronOCR'nin görüntü tarama gibi uzun süreli işlemi de dahili bir CancellationToken'dan yararlanır:

public class OcrProcessor
{
    private readonly IronOcr.IronTesseract ocr = new IronOcr.IronTesseract();

    public async Task<string> ExtractTextAsync(string path, CancellationToken token)
    {
        // Check for cancellation immediately upon entering the method.
        token.ThrowIfCancellationRequested();

        // Run the synchronous OCR method on a background thread.
        // This is the correct pattern for cancellable synchronous wrappers.
        return await Task.Run(() => ocr.Read(path).Text, token);
    }
}

Örnek Çıktı

CancellationTokens ile IronOCR kullanımı örneği

IronWord belge oluşturma ve IronXL tablo düzenleme aynı şekilde çalışır. Bu işlemlerin hepsi iptal edilebilir olduğundan işbirlikçi iptal modeli, UI thread'lerini veya Arka Plan Servislerini engellemekten kaçınır.

Uzun İşlemlerde İptali Düzenli Olarak Kontrol Etme

Yaygın bir model döngü kurup iptali kontrol etmektir:

public async Task LongRunningOperation(CancellationToken token)
{
    for (int i = 0; i < 1000; i++)
    {
        token.ThrowIfCancellationRequested();
        await Task.Delay(10, token); // await Task.Delay helps cooperative cancellation
    }
}

Bu, iptal taleplerinin uygun ve zamanında ele alınmasını sağlar ve sistemin döngüleri boşa harcamadığından emin olur.

IronPDF Oluşumundan Önce HttpClient ile CancellationToken Kullanımı

Bir PDF oluşturmadan önce HTML almak için web isteği gerçekleştirildiğinde her zaman belirteci iletin:

var client = new HttpClient();

public async Task<string> FetchHtmlAsync(string url, CancellationToken token)
{
    var response = await client.GetAsync(url, token);

    if (!response.IsSuccessStatusCode)
        throw new Exception("Error occurred while requesting content.");

    return await response.Content.ReadAsStringAsync(token);
}

Bu, kullanıcının sayfadan ayrılması durumunda HttpClient'in zamanında iptali sağlamasını sağlar.

.NET Core Arka Plan Servislerinde İptal

.NET Core Arka Plan Servisleri, ExecuteAsync metoduna otomatik olarak iletilen bir içsel CancellationToken içerir. Iron Software araçları çalıştırırken kullanın:

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
    while (!stoppingToken.IsCancellationRequested)
    {
        await ProcessPdfAsync("<h1>Hello</h1>", stoppingToken);
        await Task.Delay(5000, stoppingToken);
    }
}

Bu, sunucu tarafı uzun süreli görevler için genel bir modeldir.

Iron Software ile İptal Belirteçlerini Kullanma Konusunda En İyi Uygulamalar

  • Her zaman async metodlara CancellationToken geçirin.

  • Döngüler içinde ThrowIfCancellationRequested kullanın.

  • Sıkı döngüler yerine await Task.Delay tercih edin.

  • Belirteçleri LinkedTokenSource ile birleştirin.

  • Her zaman OperationCanceledException'ı işleyin.

  • Daha iyi kaynak yönetimi ve duyarlı uygulamalar için iptali kullanın.

  • C#'ın nesne yönelimli bir programlama dili olduğunu unutmayın, bu nedenle iptal yönteminiz ve iptal mantığınız temiz olmalıdır.

Görev İptali İçin İleri Seviye Hususlar

Bu, herhangi bir .NET geliştirici için iyi bir makale olduğundan emin olmak için kalan ilgili terminolojiyi güçlendiren en iyi uygulamaları içeren kısa bir ek bölüm.

C#'ta görev iptali otomatik değildir; yönteminizin içinde uygulanan iptal mantığına bağlıdır. Belirteç özelliği kontrol edilmeli ve tüketicilere döndürülen belirteç, işlemin iptal edilip edilmediğini veya başarıyla tamamlanıp tamamlanmadığını belirlemelerini sağamalıdır. Bir istek tamamlanamazsa bile, sistem uygun ve zamanında bir şekilde zarif bir şekilde sonlanmalıdır.

Bir kullanıcı arayüzü iptal düğmesini tetiklediğinde, CancellationTokenSource üzerindeki iptal yöntemi iptal sinyali verir ve kodunuz, token.IsCancellationRequested aracılığıyla periyodik olarak kontrol etmelidir. İşlemin iptali olayları meydana geldiğinde, kaynakları serbest bırakırsınız ve kontrolü çağırıcıya geri verirsiniz.

Derinlemesine yerleştirilmiş belgeleri taramak gibi uzun süreli bir işlem olan IronOCR taraması veya devasa elektronik tablolar oluşturan IronXL, her katmanda CancellationToken geçirerek yapılmalıdır. Kullanıcı sayfadan uzaklaştığında, işlem temiz bir şekilde sona ermelidir.

Iron Software ürünleri bunu daha kolay hale getirir çünkü .NET asenkron programlama modelini doğal olarak takip ederler. Kendi kütüphanelerinizi yazarken, tüketicilerinizin bellek sızıntısı yapmadan veya yönetilmeyen kaynakları tutmadan işlemleri zamanında iptal etmelerini sağlayacak aynı en iyi uygulamaları takip etmeyi düşünün.

Sonuç

IronPDF, IronOCR, IronWord ve IronXL ile C# CancellationToken kullanmak, uygulamaları yanıt veren, verimli ve sağlam tutan ortak bir iptal yaklaşımı sağlar. Eşzamanlı olmayan programlamada en iyi uygulamaları uygulayarak, async görevlere token geçirerek ve periyodik olarak iptal kontrolü yaparak, hızlı, güvenli ve daha bakımı kolay .NET uygulamaları oluşturabilirsiniz ve gerektiğinde nazikçe sonlandırabilirsiniz.

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
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