IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

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

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 23 Nisan 2026

Programlamada, bazen kodunuzun belirli bir süre boyunca çalışmasını durdurmak veya ertelemek istersiniz. Bu, farklı zaman koşullarını simüle etmek, belirli görevleri önceliklendirmek, ana iş parçacığını engellemeden diğer görevleri yürütmek ve dahasını yapmak içindir.

Bu kılavuzda, C#'ta bekleme nasıl yapılır açıklayacağız, async metotlar, uyku komutları, uyku fonksiyonları, konsol uygulamaları ve lider PDF oluşturma aracımız IronPDF'te bir bekleme fonksiyonunun nasıl dahil edileceği üzerine bilgi vereceğiz.

C#'ta Görevi Bekleme Nasıl Yapılır

Uyku Komutu

'Uyku', mevcut görevinizin yürütülmesini belirli bir süre boyunca durdurmanıza izin veren basit ama güçlü bir komuttur, temelde programınıza bir sonraki göreve geçmeden önce beklemesini söyler. C#'da, bunu Thread.Sleep(int milliseconds) metodunu kullanarak aşağıdaki kod örneğinde olduğu gibi yaparız:

using System;
using System.Threading;

class Program
{
    public static void Main()
    {
        Console.WriteLine("Starting the program...");
        Thread.Sleep(3000); // Sleep for 3 seconds
        Console.WriteLine("...Program continues after 3 seconds");
    }
}

Burada, program Thread.Sleep metodunu kullanarak 3.000 milisaniye (veya üç saniye) beklemeden önce "Program başlatılıyor..." mesajını konsola yazar. Belirtilen gecikmeden sonra, program devam eder ve çıkışı "...Programa, üç saniye sonra devam ediyor" ifadesini konsola yazdırır.

Async Metot ve Görevler

C#'taki Async metotlar, ana iş parçacığını etkilemeden birden çok görevin eşzamanlı olarak yürütülmesini sağlar. Bu, bir görev beklerken, diğer görevlerin çalışmaya devam edebileceği anlamına gelir. Bir async metodunu uygulamak için async anahtar kelimesini ve Task sınıfını kullanmanız gerekecek.

using System;
using System.Threading.Tasks;

class Program
{
   public static async Task Main()
   {
       Console.WriteLine("Starting Task 1...");
       var task1 = DoSomethingAsync(3000);
       Console.WriteLine("Starting Task 2...");
       var task2 = DoSomethingAsync(2000);

       await Task.WhenAll(task1, task2);
       Console.WriteLine("Both tasks completed.");
   }

   private static async Task DoSomethingAsync(int milliseconds)
   {
       await Task.Delay(milliseconds); // Asynchronously wait without blocking the main thread
       Console.WriteLine($"Task completed after {milliseconds} milliseconds");
   }
}

Bu kod örneğinde, aynı anda çalışan iki görevimiz var. DoSomethingAsync metodu, görevin geciktirilmesi gereken süreyi milisaniye olarak temsil eden int parametresini alır (kodda gördüğünüz gibi 3000 ve 2000, her ikisi de bir zaman aşımı değeri). Task.Delay metodu, Thread.Sleep() metoduna benzer, ancak async görevlerle çalışır ve ana thread'i engellemez.

Görevlerinizi Zamanlamak İçin Zamanlayıcılar Kullanma

C#'ta zamanlayıcılar, belirli bir sürenin sonunda belirli bir görevi yürütmenize olanak tanır. System.Timers.Timer sınıfını kullanarak bir zamanlayıcı oluşturabilirsiniz. Bir konsol uygulamasında bir zamanlayıcıyı nasıl kullanacağınızı gösteren bir örnek:

using System;
using System.Timers;

class Program
{
   public static void Main()
   {
       var timer = new Timer(1000); // Create a timer with a 1-second interval
       timer.Elapsed += OnTimerElapsed;
       timer.AutoReset = true;
       timer.Enabled = true;

       Console.WriteLine("Press any key to exit...");
       Console.ReadKey();
   }

   private static void OnTimerElapsed(object sender, ElapsedEventArgs e)
   {
       Console.WriteLine("Timer ticked at " + e.SignalTime);
   }
}

Yukarıdaki örnekte, 1 saniyelik aralığa sahip bir zamanlayıcı oluştururuz. OnTimerElapsed metodu, her zamanlayıcı işaretlendiğinde çalıştırılır. AutoReset özelliğini, her işaretten sonra zamanlayıcı otomatik olarak yeniden başlasın diye true olarak ayarladık. Enabled özelliği, zamanlayıcıyı başlatmak için true olarak ayarlanır.

Bu konsol uygulamasını çalıştırdığınızda, zamanlayıcının her saniye tıklayarak, tıklama zamanını konsola yazdırdığını göreceksiniz. Program çıkmak için herhangi bir tuşa basana kadar çalışmaya devam eder.

Özel Bekleme Fonksiyonları Oluşturma

Bazen, kodunuzda belirli gereksinimleri karşılamak için özel bir bekleme fonksiyonuna ihtiyacınız olabilir. Örneğin, yalnızca mevcut görevi, tüm iş parçacığını değil, engelleyen bir bekleme fonksiyonu oluşturmak isteyebilirsiniz. Bunu async delegeler kullanarak gerçekleştirebilirsiniz.

İşte özel bir bekleme fonksiyonu örneği:

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

class Program
{
   public static async Task Main()
   {
       Console.WriteLine("Starting Task 1...");
       await CustomWaitAsync(3000);
       Console.WriteLine("Task 1 completed.");

       Console.WriteLine("Starting Task 2...");
       await CustomWaitAsync(2000);
       Console.WriteLine("Task 2 completed.");
   }

   private static async Task CustomWaitAsync(int milliseconds)
   {
       await Task.Run(() => Thread.Sleep(milliseconds)); // Run in a separate task to avoid blocking the main thread
   }
}

Burada, CustomWaitAsync metodu, gecikme süresini milisaniye olarak temsil eden int parametresini kabul eder. Metod, bir async delege kullanarak Thread.Sleep fonksiyonunu yeni bir görev içinde çalıştırır, böylece mevcut görev durumu beklerken engellenir, ancak ana thread engellenmez.

Doğru Bekleme Stratejisini Seçme

C# bekleme ifadesi, uyku komutu, async metotlar, zamanlayıcılar ve özel bekleme fonksiyonlarını ele aldık, her tekniğin ne zaman kullanılacağını bilmek önemlidir. İşte hızlı bir özet:

  • Kodunuzun belirli bir süre için yürütülmesini durdurmanın basit bir yoluna ihtiyacınız olduğunda Thread.Sleep fonksiyonunu kullanın.
  • Birden fazla görevi eşzamanlı olarak ana iş parçacığını engellemeden yürütmeniz gerektiğinde async metotlar ve görevleri kullanın.
  • Belirli bir aralıkta belirli bir görev yürütmeniz gerektiğinde zamanlayıcıları kullanın.
  • Dahili yöntemler tarafından karşılanmayan özel gereksinimleriniz olduğunda özel bekleme fonksiyonları oluşturun.

IronPDF ile Bekleme Fonksiyonu Kullanarak PDF Üretme

IronPDF web geliştiricileri düşünülerek tasarlanmış hafif bir .NET PDF kütüphanesidir. Okuma, yazma ve PDF dosyalarını manipüle etme işlemlerini hızlı ve basit bir hale getirir, her tür dosya türünü PDF içeriğine dönüştürebilir ve hem masaüstü hem de web .NET projelerinizde kullanılabilir. En iyi kısım - bir geliştirme ortamında denemesi ücretsizdir. Hadi başlayalım.

IronPDF, HTML dosyaları, URL'ler, ham dizgiler ve ZIP dosyalarıyla çalışır. Kodun hızlı bir özetini burada bulabilirsiniz:

using IronPdf;

class Program
{
   static void Main(string[] args)
   {
       var renderer = new ChromePdfRenderer();

       // 1. Convert HTML String to PDF
       var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
       var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
       pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

       // 2. Convert HTML File to PDF
       var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
       var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
       pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

       // 3. Convert URL to PDF
       var url = "http://ironpdf.com"; // Specify the URL
       var pdfFromUrl = renderer.RenderUrlAsPdf(url);
       pdfFromUrl.SaveAs("URLToPDF.pdf");
   }
}

IronPDF, görevler yürütüldükten sonra, planlanmış aralıklar sırasında veya mevcut iş parçacığı çalışmaya devam ettiğinde PDF belgeleri üretmek için bekleme stratejilerinizle sorunsuz bir şekilde entegre olabilir.

Örneğin, bir veri tabanından veri getirildikten sonra PDF raporu oluşturmak için ana iş parçacığını engellemeden async metot ile birlikte IronPDF kullanabilirsiniz. Benzer şekilde, uygulamanızın verilerinin düzenli aralıklarla PDF anlık görüntüsünü oluşturmak için bir zamanlayıcı sınıfı kullanabilirsiniz.

IronPDF Kütüphanesini Yükleme

IronPDF kullanımı kolaydır, ancak yüklemek daha da kolaydır. Bunu yapmanın birkaç yolu vardır:

Yöntem 1: NuGet Package Manager Konsolu

Visual Studio'da, Solution Explorer'da, References öğeine sağ tıklayın, ardından Manage NuGet Packages öğesini seçin. Gözat'a tıklayın ve 'IronPDF' aramasını yapın ve en yeni sürümü yükleyin. Eğer bunu görüyorsanız, çalışıyor:

Tools -> NuGet Package Manager -> Package Manager Console yoluna da gidip, Paket Yöneticisi Sekmesine aşağıdaki satırı yazabilirsiniz:

PM > Install-Package IronPdf

Son olarak, NuGet'in resmi web sitesinden doğrudan IronPDF edinebilirsiniz. Sayfanın sağındaki menüden Paket İndir seçeneğini seçin, otomatik yüklemek için dosyanıza çift tıklayın ve projede kullanmaya başlamak için Çözümü tekrar yükleyin.

Çalışmadı mı? Platforma özgü yardımı gelişmiş NuGet yükleme sayfamızda bulabilirsiniz.

Yöntem 2: Bir DLL Dosyası Kullanma

IronPDF DLL dosyasını doğrudan bizden alabilir ve Visual Studio'ya manuel olarak ekleyebilirsiniz. Tam talimatlar ve Windows, MacOS, ve Linux DLL paket bağlantıları için özel yükleme sayfamıza bakın.

IronPDF'de C# Wait Nasıl Kullanılır

Aşağıdaki örnekle IronPDF'e bir bekleme fonksiyonunun nasıl dahil edileceğini görebilirsiniz:

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

class Program
{
   public static async Task Main()
   {
       Console.WriteLine("Starting the PDF generation task...");
       Stopwatch stopwatch = Stopwatch.StartNew();
       await Task.Delay(3000); // Wait for 3 seconds
       GeneratePdf();
       Console.WriteLine("PDF generated successfully.");
   }

   private static void GeneratePdf()
   {
       var htmlToPdf = new ChromePdfRenderer();
       var pdf = htmlToPdf.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
       pdf.SaveAs("HelloWorld.pdf");
   }
}

Burada, Task.Delay metodunu üç saniye bekledikten sonra bir PDF oluşturmak için kullanıyoruz. PDF, bekleme tamamlandığında, uygulamanın çalışma dizininde "HelloWorld.pdf" olarak kaydedilir.

İşte son ürün:

IronPDF ile Bekleme Yöntemini Kullanma

C# uygulamalarında, veri yükleme işlemleri gibi işlemleri yönetmek için sleep fonksiyonunu etkin bir şekilde kullanabilir, bir DataTable veya IronPDF kullanarak PDF raporları oluşturabilirsiniz.

Sonuç

İlk başta çelişkili görünebilir, ancak kodunuza bekleme ifadeleri eklemek etkili uygulamalar oluşturmak için çok önemlidir. Ve IronPDF'i dahil ederek, uygulamalarınızı eşzamanlı bir şekilde ana iş parçacığını engellemeden PDF belgeleri oluşturarak bir üst seviyeye taşıyabilirsiniz.

IronPDF'yi kullanmaya hazır mısınız? 30 günlük ücretsiz deneme ile başlayabilirsiniz. Geliştirme amaçlı kullanmak tamamen ücretsizdir, böylece gerçekten ne içerdiğini görebilirsiniz. Ve gördüğünüzü beğendiyseniz, IronPDF $999 gibi düşük bir fiyattan başlar. Daha büyük tasarruflar için, Iron Suite'i kontrol edin, burada dokuz Iron Software aracını iki fiyatına alabilirsiniz. İyi kodlamalar!

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