Şubat 1105

Timer Kullanımı

Yazının başında tanıtımı yapılacak olan Timer nesnesinin System.Timers.Timer olduğunu bildirmek isterim. Web veya Masaüstü uygulamalarında kullanılan, AJAX kütüphanesiyle birlikte gelen Timer değildir.

Aynı olmasa da, aslında aynı işlevi görmektedir. Bir sayıcı başlatırsınız, belirli zaman aralıklarında belli işlemleri yapmasını istersiniz.

 

Örnek Kod:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Timers;

/// <summary>
/// Summary description for Zamanlayici
/// </summary>
public class Zamanlayici
{
    public Zamanlayici()
    {
       // Constructor
    }

    private Timer denemeProjectZamanlayici;

    public void ZamanlayıcıCalistir()
    {
        denemeProjectZamanlayici = new Timer(60000); //1 dk 
        denemeProjectZamanlayici.Elapsed += ZamanlayıcıCalistir_OnTimedEvent;
        denemeProjectZamanlayici.Start();
    }

    private void ZamanlayıcıCalistir_OnTimedEvent(object source, 
ElapsedEventArgs e) { MailGonder(); } private void MailGonder() { // Mail gönderme işlemleri } }

Yukarıdaki şekilde bir sınıfı projenize kolaylıkla ekleyebilrsiniz.

Timer nesnesi yaratılırken gönderdiğimiz parametre işlemin ne kadar sürede yapılmasını istediğimizi belirten değer. milisaniye değerinden gönderilir.

 

Zamanlayıcı başlatacak olan nesneyi ise  programımızın uygun yerinde yaratıp gerekli çağrıyı yapmamız gerekmektedir. Örnek:

Zamanlayici zaman = new Zamanlayici();
            zaman.ZamanlayıcıCalistir();

Bu kod parçasını bir component event ile isteğe başlatabileceğiniz gibi ASP.NET projelerinin Global.asax dosyası içinde Application_Start metodu içine de yazılarak gerekli işlemlerin sunucuda kendiliğinden yapılması da sağlanabilir.

 

Genel kullanımı hakkında bilgi verdikten sonra şimdi biraz detaya inebiliriz.

2 tane constructorı vardır:

  • Timer()
  • Timer(double) : Interval süresini contructor içinde veririz.

 

Bazı özellikleri i:

  • AutoReset :Interval zamana ulaştıktan sıonra resetlensin mi, yoksa kaldığı yerden saymaya devam mı etsin.
  • CanRaiseEvents :
  • DesignMode : True ise desing mode.
  • Enabled : Etkinleştirme
  • Interval : Milissaniye cinsinden süre
  • Site : Timer nesnesini çalıştıran siteyi ISite olarak tutar.

 

Bazı metodları:

  • Close : Timer nesnesi tarafından kullanılan bellek alanını bırakır.
  • Finalize : Garbage Collector tarafından yapılan işlemi elle yapmak için kullanılır.
  • Start: Enabled’ı true yapar.
  • Stop : Enabled’ı false yapar.

 

Kaynak: http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx

Tags: , | Categories: .NET | C#