IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

C# İptal Jetonu (Geliştiriciler İçin Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 19 Temmuz 2026

Modern yazılım geliştirmede, uzun süreli görevleri verimli bir şekilde yönetmek kritik öneme sahiptir, özellikle büyük veya karmaşık PDF dosyalarının oluşturulması yaygın olduğunda. C# geliştiricileri genellikle sorunsuz PDF oluşturmak için IronPDF'i kullanır, ancak potansiyel olarak uzun süren PDF oluşturma görevlerini yönetmek, kullanıcı kesintilerini veya iptallerini yönetmenin bir yolunu gerektirir.

Bu noktada, C#'ta CancellationToken devreye girer. Bunu IronPDF ile entegre ederek, PDF oluşturma görevlerinizin hem duyarlı hem de etkin olmasını sağlayabilirsiniz. Bu makalede CancellationToken önemini, IronPDF ile neden iyi eşleştiğini ve görevleri nazikçe iptal etmek için nasıl uygulayabileceğinizi araştıracağız.

C#'ta CancellationToken Nedir?

CancellationToken, C#'ta eşzamanlı programlamanın temel bir parçasıdır. Bir görevin iptal edilmesini sinyal vermenizi sağlar, geliştiricilere uzun süren işlemler üzerinde daha fazla kontrol sunar. Bu, raporları veya faturaları üretme gibi görevleri yürütürken özellikle yararlı olabilir; dinamik raporlar oluşturmak için hedef miktarınıza kadar veriden sürekli raporlar üretmek isteyebilirsiniz. Bu noktaya ulaştığınızda, işlemin iptal edilmesi gerektiğini belirtmek için C# iptal tokenlerini kullanabilirsiniz, bu da programın zarif bir şekilde sonlanmasını sağlar.

Nasıl Çalışır?

Özetle, bir CancellationToken, bir göreve veya yönteme geçilir ve iptalin istenip istenmediğini periyodik olarak kontrol eder. Eğer öyleyse, görev nazikçe sona erebilir, kaynakları serbest bırakır ve uygulamanızın duyarlılığını artırır. Bu, karmaşık belgelerin oluşturulmasının biraz zaman alabileceği PDF oluşturma gibi durumlarda özellikle kullanışlıdır.

CancellationTokens kullanarak, gereksiz yere uzun süren görevlerin olası dezavantajlarından, sistem kaynaklarının israfı ve kötü kullanıcı deneyimi gibi, kaçınırsınız.

Dahili İptal Tokenleri

C#'ta, dahili bir iptal tokeni, belirli bir sınıf veya yöntemde oluşturulan ve yönetilen bir iptal tokenine atıfta bulunur, dış bir kaynaktan geçilmek yerine. Bu, tek bir bileşenin kapsamı içinde görev iptali üzerinde daha ince bir kontrol sağlar ve bu bileşen içinden kaynaklanan iptal taleplerini izleme ve bunlara cevap verme olanağı tanır.

Dahili bir iptal tokeni kullanmak, özellikle iptal mantığını sınıfınızın tüketicilerine açık hale getirmeden kapsamak istediğiniz senaryolarda yararlıdır ve böylece temiz bir arayüzü korur. Bu yaklaşım, kodun modülerliğini artırabilir ve geniş CancellationToken çerçevesi tarafından sağlanan esneklikten yararlanırken karmaşık eşzamanlı iş akışlarını yönetmeyi kolaylaştırabilir.

Neden IronPDF ile Bir İptal Tokeni Kullanmalı?

Özellikle web uygulamalarında veya karmaşık raporlama sistemlerinde PDF oluştururken, bir kullanıcı büyük bir PDF dosyası oluşturmak gibi bir görevi başlatabilir ancak ardından uzaklaşabilir veya artık sonucu istemeyebilir. Bu durumlarda, gereksiz sunucu veya arayüz yükünü önlemek için PDF oluşturma sürecini iptal etme seçeneğini istemek isteyebilirsiniz.

İşte IronPDF ile CancellationToken kullanmanın neden kritik olduğuna dair:

1. Gereksiz Yükten Önleyin

Bir kullanıcı talep ettiği PDF'ye artık ihtiyaç duymuyorsa, işlemin devam etmesinin bir anlamı yoktur. CancellationToken kullanarak, PDF oluşturma görevini durdurarak sunucularınızdaki fazla yükü önleyebilir ve genel uygulama performansını artırabilirsiniz.

2. Kullanıcı Deneyimini Geliştirin

Masaüstü uygulamalarında, PDF oluşturma UI iş parçacığında gerçekleşebilir ve bu, görevin uzun sürmesi durumunda kullanıcı arayüzünü kilitleyebilir. CancellationToken ekleyerek, kullanıcılar görevi iptal edebilir ve uygulamayı duyarlı tutabilir.

3. Ölçeklenebilirliği Artırın

Çok sayıda kullanıcının aynı anda PDF oluşturduğu web uygulamalarında ölçeklenebilirlik çok önemlidir. CancellationToken, gereksiz görevleri güvenli bir şekilde iptal etmenize ve diğer istekleri etkili bir şekilde yönetmek için kaynakları serbest bırakmanıza olanak tanır.

IronPDF ile CancellationToken Nasıl Uygulanır

Artık CancellationToken'ın neden faydalı olduğunu anladık, şimdi bunu IronPDF ile nasıl uygulayacağımızı inceleyelim.

Adım 1: Projenize IronPDF'i Kurmak

IronPDF i kullanmaya başlamak için öncelikle yüklemeniz gerekecek. Eğer zaten yüklüyse, bir sonraki bölüme geçebilirsiniz; aksi takdirde, IronPDF kütüphanesinin nasıl yükleneceği aşağıdaki adımlarda açıklanmaktadır.

NuGet Paket Yöneticisi Konsolu Üzerinden

NuGet Paket Yöneticisi Konsolu'nu kullanarak IronPDF'i yüklemek için Visual Studio'yu açın ve Paket Yöneticisi Konsolu'na gidin. Ardından aşağıdaki komutu çalıştırın:

PM > Install-Package IronPdf

Solution İçin NuGet Paket Yöneticisi Üzerinden

Visual Studio'yu açarak 'Araçlar -> NuGet Paket Yöneticisi -> Çözüm İçin NuGet Paketlerini Yönet' bölümüne gidin ve IronPDF'i arayın. Buradan, yapmanız gereken tek şey projenizi seçip 'Yükle'ye tıklamak ve IronPDF projenize eklenmiş olacak.

IronPDF'i yükledikten sonra, IronPDF'i kullanmaya başlamak için tek yapmanız gereken, kodunuzun en üstüne doğru 'using' deyimini eklemektir:

using IronPdf;

Adım 2: Asenkron PDF Oluşturma Yönteminde İptal Tokenlerini Kullanma

Gerçek uygulamaya dalalım. Bu örnekte, basit bir PDF'yi HTML'den IronPDF kullanarak oluşturacağız, ancak, gerekirse görevin iptal edilmesini sağlayan bir CancellationToken ile.

using IronPdf;
using System;
using System.Threading;
using System.Threading.Tasks;

public class PdfGenerator
{
    public async Task GeneratePdfWithCancellation(CancellationToken token)
    {
        var Renderer = new ChromePdfRenderer();
        try
        {
            // Check for cancellation before starting
            token.ThrowIfCancellationRequested();
            
            // Simulating a long task that can be checked for cancellation periodically
            for (int i = 0; i < 10; i++)
            {
                // Simulating a piece of work (this could be part of a larger HTML rendering)
                await Task.Delay(500); // Simulate chunk processing
                
                // Periodically check for cancellation in long-running operations
                if (token.IsCancellationRequested)
                {
                    Console.WriteLine("Cancellation requested. Throwing exception.");
                    token.ThrowIfCancellationRequested();  // This will trigger an OperationCanceledException
                }
            }
            
            // Simulate PDF creation after the long process
            var pdf = await Renderer.RenderHtmlAsPdfAsync("<h1>Hello, PDF!</h1>");
            
            // Save the PDF after ensuring no cancellation occurred
            pdf.SaveAs("output.pdf");
            Console.WriteLine("PDF generated successfully.");
        }
        catch (OperationCanceledException)
        {
            // Handle task cancellation
            Console.WriteLine("PDF generation was canceled.");
        }
        catch (Exception ex)
        {
            // Handle other exceptions
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}

public class Program
{
    public static async Task Main(string[] args)
    {
        // Create a CancellationTokenSource
        var cancellationTokenSource = new CancellationTokenSource();
        
        // Create our cancellation token
        var token = cancellationTokenSource.Token;
        
        // Start the PDF generation task
        var pdfGenerator = new PdfGenerator();
        Task pdfTask = pdfGenerator.GeneratePdfWithCancellation(token);
        
        // Simulate a cancellation scenario
        Console.WriteLine("Press any key to cancel PDF generation...");
        Console.ReadKey();
        
        // Cancel the task by calling Cancel() on the CancellationTokenSource
        cancellationTokenSource.Cancel();
        
        try
        {
            // Await the task to handle any exceptions, such as cancellation
            await pdfTask;
        }
        catch (OperationCanceledException)
        {
            // Confirm the cancellation
            Console.WriteLine("The PDF generation was canceled.");
        }
        finally
        {
            cancellationTokenSource.Dispose();
        }

        Console.WriteLine("Program finished.");
    }
}

Konsol Çıkışı

C# Cancellationtoken (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Konsol Çıktısı

PDF Çıktısı

C# Cancellationtoken (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - PDF Çıktısı

Bu örnekte, IronPDF ile uzun süren bir PDF oluşturma görevini iptal etmek için bir CancellationToken kullanıldığını bir C# programında nasıl kullanacağınızı gösteriyoruz. Kod iki bölümde yapılandırılmıştır: PDF oluşturma süreci (PdfGenerator sınıfı) ve ana program mantığı (Program sınıfı).

  • PdfGenerator Sınıfı: Bu sınıf, bir PDF dosyası oluşturmayı simule eden ve CancellationToken aracılığıyla iptali destekleyen bir yöntem içerir.
  • Ana yöntemde CancellationTokenSource() kullanarak iptal token kaynağımızı oluşturuyoruz ve ardından token nesnemizi CancellationTokenSource'ın Token özelliğini ona geçirerek oluşturuyoruz.
  • ChromePdfRenderer, HTML içeriğini bir PDF belgesine işlemek için IronPDF kütüphanesinden kullanılır.
  • GeneratePdfWithCancellation yöntemi eşzamansız (async) olup bir Görev döndürür. Bu yöntem, iptal isteği yoluyla görev iptalini ele almak için bir CancellationToken (token) kabul eder.
  • CancellationToken, uzun süreli işlemleri güvenli bir şekilde iptal etmemize olanak tanır. Ancak, iptal etmek işbirliğine dayalıdır, yani görevin kendisi token durumunu periyodik olarak kontrol etmelidir.
  • Bu kodda, sürekliliği iptal için periyodik kontroller ile uzun bir görevi simule ediyoruz. Ana nokta, PDF oluşturma süreci sırasında iptali manuel olarak kontrol etmemiz (token.IsCancellationRequested) ve eğer token iletilirse iptal yöntemini çalıştırmaya hazır olmamızdır.
  • Kullanıcı programın iptal edilmesini sinyal vermek için bir tuşa bastığında, görev zarif bir şekilde durur ve OperationCanceledException atar, PDF oluşturmanın uygun ve zamanlı bir şekilde tamamlanmasını önler.
  • İptal gerçekleşmediğinde programı tüm görev sürecini çalıştırmaktan önlemek için sonuç PDF'i 'output.pdf' olarak kaydedilir.

IronPDF ve CancellationToken'ın Gerçek Dünya Kullanım Senaryoları

IronPDF ile iptal tokenlerinden bir veya birkaçını kullanmanın uygulamanızın performansını ve kullanıcı deneyimini artırabileceği birkaç pratik durum vardır. İşte birkaç örnek:

1. Web Uygulamaları

Web uygulamasında, kullanıcılar genellikle PDF formatında rapor oluşturma gibi eylemleri başlatır. Ancak, kullanıcı sayfadan uzaklaştığında veya tarayıcıyı kapattığında, sistem bunu algılayabilir ve PDF oluşturma sürecini durdurmak için CancellationToken kullanabilir.

HttpContext.Response.RegisterForDispose(CancellationTokenSource);

Bu basit uygulama, artık ihtiyaç duyulmayan görevlere kaynak ayırmayı önleyerek web sunucularının daha etkili bir şekilde ölçeklenmesine olanak tanır.

2. Uzun Süreli Raporlar

Raporlama uygulamalarında, kullanıcılar büyük veri kümelerinin PDF olarak dışa aktarılmasını talep edebilir. Eğer kullanıcı fikrini değiştirirse veya yanlış bir sorgu yaparsa, CancellationToken, görevi yarıda durdurarak kaynak israfını önlemenizi sağlar.

3. Arka Plan Hizmetleri

Arka plan hizmetlerinde veya mikro hizmetlerde, büyük PDF gruplarının oluşturulması gibi önemli miktarda zaman alan görevler, CancellationToken kullanılarak daha verimli yönetilebilir. Hizmet kapatılacak veya ölçeklendirilecek olduğunda, devam eden görevler temiz bir şekilde iptal edilebilir, verilerin kaybolmasını veya bozulmasını önleyerek.

Sonuç

Bugünün tartışmasının sonuna geldikten sonra, IronPDF'i iptal tokenleriyle kullanarak profesyonel gibi PDF projelerinize uygulayabileceksiniz! C# CancellationToken kullanarak IronPDF ile daha etkin, duyarlı uygulamalar oluşturarak PDF oluşturma görevlerini zarif bir şekilde yönetebilirsiniz. Bu yaklaşım, görevlerin yürütme sırasında güvenli noktalarda iptal isteklerini kontrol etmesine izin veren işbirlikçi bir iptal modeli sağlar, aniden sonlandırılmak yerine.

İster uzun süreli raporları yönetin, web uygulamalarında talebe bağlı PDF oluşturmayı ister yapıyor olun, isterse arka plan hizmetleriyle ilgileniyor olun, bir CancellationToken veya aynı anda birden fazla token yapısına dahil etmek, gereksiz görevlerin iptal edilmesini ve tüketilen kaynakların önlenmesini sağlarken kullanıcı deneyimini artırır.

Birkaç satır kodla, uygulamanızın ölçeklenebilirliğini ve duyarlılığını artırabilir, kullanıcıların işlemleri üzerinde daha fazla kontrol sahibi olmasına izin verebilirsiniz. Henüz IronPDF'i keşfetmediyseniz, ücretsiz deneme sürümünü şimdi denemek ve güçlü PDF oluşturma yeteneklerinin C# projelerinizi nasıl dönüştürebileceğini keşfetmek için mükemmel bir zaman.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

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