C# Timer Kullanımı ve Örnekleri konulu bu makalede timer nesnesinin özellikleri kapsamlı olarak anlatılmaktadır. Aynı zamanda C# Timer nesnesi ile kronometre uygulaması ve slayt yapımı örnekleri ile konunun pekiştirilmesi sağlanmaktadır. Dilerseniz makalemizi inceleyerek veya Youtube eğitim videolarımızı izleyerek konuyu öğrenebilirsiniz.

 

 

C# Timer Nedir?

Programlamada timer zamanlayıcı anlamına gelmektedir. Program yürütüldüğünde belirli zaman aralıkları ile aynı işlemin tekrarlanması gerektiğinde kullanılır. Otomasyon kontrol sistemleri ve elektronik cihazların beyninde timer nesnesi ile gerçekleştirilen komutlar mevcuttur.

C# Timer Kullanımı Örnekleri:

  • Belirli zaman aralıklarında değişen resim galerisi oluşturma
  • Bilgisayardan yönetilebilen otomatik sulama sistemi otomasyonu
  • Bilgi yarışması uygulamalarında her soru için belirli bir zaman belirleme

C# Timer Özellikleri:

Interval: Mili saniye cinsinden Timer’ın çalışacağı zaman periyodudur. Örneğin; Interval özelliği 5.000 olarak belirlenirse her 5 saniyede bir istenilen kod çalışır. Timer nesnesinin interval değeri int değişken türünün alabileceği değer aralığındadır. 1-2.147.483.647 arasında değer alabilir. Yaklaşık 25 günde bir çalışabilecek bir işlem Timer ile oluşturulabilir.

Enabled: Varsayılan olarak Timer kontrolünün Enabled özelliği false’dir ve program çalıştığı anda Timer çalışmaya başlamaz. Timer’ı çalıştırmak için bu özellik true, Timer’ı durdurmak için bu özellik false olarak ayarlanmalıdır. Timer nesnesini aktif yada pasif yapmak için Start() ve Stop() metodlarından da faydalanılabilir. Timer.Start() komutu ile Timer nesnesi aktif edilirken, Timer.Stop() komutu ile pasif edilir yani durdurulur.

C# Timer Olayları:

Tick Olayı: Timer kontrolünün Interval özelliği ile belirtilen süre içerisinde periyodik olarak bu olay meydana gelir. Interval özelliği düşük olan Timer’lerde bu olay içerisine yazılacak kodun hızlı olması gerekir. Tick olayına yazdığınız kodun tamamı çalıştırılmadan yeni Tick olayı meydana gelmez.

C# Timer Örnekleri:

C# Timer Kullanımı ve Örnekleri 1: Saniyede bir kez sistem saatini label1 nesnesine yazdıran program.

C# Timer Örnek 1.1
C# Timer Örnek 1.2

Örnek 1 Program Kodları:

Örnek 1 Açıklamalar:

Timer1 nesnesinin interval değeri 1000 milisaniye yani 1 saniye olarak belirlenmiştir. Her 1 saniyede bir timer_Tick olayı tetiklenir ve DateTime.Now.ToString() metodu ile sistem saati bilgisi alınarak stringe dönüştürülür. label1 nesnesine sistem saati bilgisi yazılır.

C# Timer Kullanımı ve Örnekleri 2 (C# Timer Kronometre Yapımı): Dakika, saniye ve salise verilerinden oluşan kronometre uygulaması.

C# Timer İle Kronometre Yapımı
C# Timer İle Kronometre Yapımı

Örnek 2 Açıklamalar:

Adım 1: int türünde dakika, saniye ve salise değişkenleri global (genel yani programın tamamında geçerli) olarak tanımlanır. Başlangıç değerleri belirlenir. Değişken tanımlamaları Form1_Load olayının bir üst satırında yapılabilir.

Adım 2: Form yürütüldüğünde timer nesnelerinin interval değerleri milisaniye cinsinden belirlenir. (60000 milisaniye=60 saniye, 1000 milisaniye=1 saniye, 10 milisaniye=1 salise) Dakika, saniye ve salise değerlerine ilişkin label nesnelerine 0 değerleri yazdırılır.

Adım 3: Başla butonuna tıklandığında varsayılan olarak pasif durumda olan timer nesneleri aktif edilir. Artık her timer nesnesi için belirlenen interval süresi dolduğunda, ilgili timer nesnesine ilişkin Tick olayı tetiklenecektir. Timer nesneleri komutla durdurulmadığı sürece bu işlem sonsuz döngü içerisinde devam edecektir.

Adım 4: timer1 (dakika) nesnesi her 60000 milisaniye de bir tetiklendiğinde, başlangıçta 0 olan dakika değişkeninin değeri bir arttırılır ve label4 nesnesine bu bilgi yazılır.

Adım 5: timer2 (saniye) nesnesi her 1000 milisaniye de bir tetiklendiğinde, saniye değişkenin değeri if kontrol deyimi ile kontrol edilir, değeri 60 olduğunda 0’a eşitlenir. Ardından saniye değişkeninin değeri bir arttırılır ve label5 nesnesine bu bilgi yazılır.

Adım 6: timer3 (salise) nesnesi her 10 milisaniye de bir tetiklendiğinde, salise değişkenin değeri if kontrol deyimi ile kontrol edilir, değeri 100 olduğunda 0’a eşitlenir. Ardından salise değişkeninin değeri bir arttırılır ve label6 nesnesine bu bilgi yazılır.

Adım 7: Bitir butonuna tıklandığında, timer1, timer2, timer3 nesneleri durdurularak sonsuz döngüden çıkarılır.

C# Timer Kullanımı ve Örnekleri 3 (C# Timer İle Slayt Oluşturma): Resim galerisi oluşturma

C# Timer İle Slayt Oluşturma
C# Timer İle Slayt Oluşturma

Örnek 3 Program Kodları:

Örnek 3 Açıklamalar:

Adım 1: Forma imageList1 ve PictureBox1 nesneleri eklenir. imageList1 nesnesi seçilir, properties panelinden Images özelliği yanındaki butona tıklanır ve resimlerin ekleneceği pencere açılır. Add komutu ile resimler eklenir. imageList1 nesnesinin ImageSize özelliğinden Width (Genişlik) ve Height (Yükseklik) değerleri ayarlanır. Form boyutu da buna göre ayarlanır.

PictureBox ve ImageList Ekleme
PictureBox ve ImageList Ekleme

Adım 2: Form yürütüldüğünde timer1 nesnesi her saniyede bir çalışacak şekilde ayarlanır ve aktif edilir. pictureBox1 nesnesine, imageList1 nesnesindeki 1. resmin (Car_1.jpg) eklenmesi sağlanır.

Adım 3: Global (Genel yani programın tamamında geçerli) i değişkeni tanımlanır ve başlangıç değeri 0 olarak belirlenir. Her bir saniyede tetiklenen timer1_Tick olayında i değişkeni değeri 1 arttırılır. Resimlerin başa dönmesi için i değişkeninin değeri 6 olduğunda sıfırlanır. Form yürütüldüğünde önce Form1_load olayındaki kodlardan dolayı 1. resim görüntülenir, 1 saniye sonra Tick olayı tetiklenir, i=1 olur ve 2. resim görüntülenir. Daha sonra 1’er saniye aralıklarla sırasıyla 3,4,5,6 ve 7. resimler görüntülenir. İ=0 olduğunda tekrar 1. resimden başlayarak resimler görüntülenmeye başlar. Bu işlem form kapatılıncaya kadar devam edecektir.

NOT: Örneğin; i=3 iken 4. resim (Car4.jpg) görüntülenir. Çünkü imageList1 nesnesinde resim bilgileri dizide saklanır. Dizilerde elemanlar 0 indisinden başlar. Yani imageList1.Images[3] imageList1 nesnesine eklenen resimlerden 4. sırada olanı belirtir.

C# Timer Kullanımı ve Örnekleri isimli makalemiz tüm kapsamıyla özgün olup hiçbir kaynaktan alıntı içermemektedir.

Youtube eğitimlerimizi izlemek ve haberdar olmak için aşağıdaki görsele tıklayarak SendeKodYaz kanalımıza abone olabilirsiniz. Yazılım hayatınızda başarılar dileriz.

Leave a comment