21 Ağustos 2012 Salı

C# ile Timer

Merhaba Webkolog okurları! Bugün C# .Net Framework 4 ve Visual Studio 2010 kullanarak uygulamalarımızda belirli aralıklarla kod çalıştırmak için kullandığımız Timer kontrolünü yakından inceleyeceğiz. Timer, özellikle belirli zaman aralıklarında tekrar eden işlemler yapmak istediğimizde oldukça kullanışlıdır. Gelin, bu kontrolün temel özelliklerine ve kullanımına birlikte göz atalım.

Timer Kontrolü Nedir?

Timer kontrolü, belirli bir zaman aralığında düzenli olarak bir olay (event) tetikleyen bir bileşendir. Bu olay, belirli bir kod bloğunu çalıştırmak için kullanılır. Timer, Windows Forms uygulamalarında ve arka plan işlemlerinde kullanılabilir.

Timer Kontrolünü Kullanma

  1. Timer Oluşturma:
    • Visual Studio 2010'da, Toolbox'tan bir Timer kontrolünü formunuza sürükleyerek veya kodda bir Timer nesnesi oluşturarak başlayabilirsiniz. System.Windows.Forms.Timer sınıfını kullanırız.
  2. Timer'ı Ayarlama:
    • Interval özelliği, Timer'ın tetikleme aralığını milisaniye cinsinden belirtir.
    • Enabled özelliği, Timer'ın aktif olup olmadığını kontrol eder. true olarak ayarlandığında Timer çalışmaya başlar.
  3. Tick Olayını Kullanma:
    • Tick olayı, Timer her tetiklediğinde gerçekleşir. Bu olaya bir olay işleyici (event handler) ekleyerek, belirli aralıklarla çalışmasını istediğimiz kodu yazabiliriz.

Örnek Kullanım

Aşağıdaki örnekte, bir Timer oluşturmayı, ayarlamayı ve Tick olayında bir mesaj kutusu göstermeyi gösteriyoruz:

// Timer örneği
// Timer'ın tetikleme aralığını 1000 milisaniye (1 saniye) olarak ayarlayın.
timer1.Interval = 1000;
// Timer'ı etkinleştirin, böylece çalışmaya başlar.
timer1.Enabled = true;
// Timer'ı başlatmanın başka bir yolu.
timer1.Start();
// Timer'ı durdurmak için
timer1.Stop();
// Tick olayına bir olay işleyici ekleyin.  Bu metot, Timer her tetiklediğinde çalışır.
timer1.Tick += new EventHandler(timer1_Tick);
// Tick olay işleyicisi
void timer1_Tick(object sender, EventArgs e)
{
    MessageBox.Show("Timer tetiklendi!"); // Her saniyede bir mesaj kutusu göster.
}

Bu örnekte, timer1 adında bir Timer oluşturduk. Interval özelliğini 1000 olarak ayarlayarak Timer'ın her saniyede bir tetiklemesini sağladık. Enabled özelliğini true yaparak Timer'ı başlattık. timer1_Tick metodu ise Tick olayında çalışacak kodu içerir.

Timer Kontrolünün Özellikleri

  • Enabled: Timer'ın etkin olup olmadığını belirler.
  • Interval: Timer'ın tetikleme aralığını milisaniye cinsinden belirtir.
  • Tag: Timer ile ilişkilendirilebilecek ek bir nesne saklar.

Timer Kontrolünün Metotları

  • Start(): Timer'ı başlatır.
  • Stop(): Timer'ı durdurur.

Timer Kontrolünü Kullanırken Dikkat Edilmesi Gerekenler

  • UI Thread: Windows Forms Timer, UI thread üzerinde çalıştığı için, uzun süren işlemleri Tick olayında yapmaktan kaçınmalısınız. Uzun süren işlemler uygulamanın donmasına neden olabilir. Bu tür işlemler için System.Threading.Timer kullanmanız daha uygun olabilir.
  • DoEvents: Application.DoEvents() metodunu Tick olayında kullanmaktan kaçının. Bu metot, uygulamanın mesaj kuyruğunu işlemesine neden olur ve performans sorunlarına yol açabilir.

Örnek: Geri Sayım Sayacı

Aşağıdaki örnekte, Timer kullanarak basit bir geri sayım sayacı oluşturuyoruz:

int sayac = 10;
private void Form1_Load(object sender, EventArgs e)
{
    timer1.Interval = 1000;
    timer1.Enabled = true;
    label1.Text = sayac.ToString();
}
private void timer1_Tick(object sender, EventArgs e)
{
    sayac--;
    label1.Text = sayac.ToString();
    if (sayac == 0)
    {
        timer1.Stop();
        MessageBox.Show("Geri sayım tamamlandı!");
    }
}

Bu örnekte, Form1_Load olayında Timer'ı başlatıyoruz ve geri sayımın başlayacağı değeri bir değişkene atıyoruz. timer1_Tick olayında ise her saniyede bir sayacı azaltıyor ve Label kontrolünde gösteriyoruz. Sayaç 0'a ulaştığında Timer'ı durdurup bir mesaj gösteriyoruz.

Sevgili Webkolog okurları, C# .Net Framework 4 ve Visual Studio 2010 kullanarak Timer kontrolünün temel kullanımını ve bazı önemli özelliklerini bu şekilde incelemiş olduk. Bu kontrol, uygulamalarınızda zamanlanmış görevleri kolayca gerçekleştirmenize olanak tanır.

Webkolog'u takipte kalın!

Hepinize bol zamanlı ve başarılı projeler dilerim!

0 yorum:

Yorum Gönder