C# Timer Kullanımı , yazımız ile c sharp eğitimlerimize devam ediyoruz. Bu yazımda benim çok sık kullandığım bir nesne var. C sharp Timer bir nesnedir ancak form üzerinde görünmez. Formun alt tarafında görünür ve öyle çok fazla eventi ve özelliği yoktur. kullandığımız üç özellik ve bir eventi bulunur. Timer dediğimiz nesne, kronometre mantığı gibi çalışır ve başlattığımız anda biz tekrar durdurana kadar çalışmaya devam eder. Yani çok basit ama çok kullanışlı bir nesnedir.
C sharp Timer Kullanımı
En basit kullanımı olarak, form üzerinde bilgisayardaki tarih ve saati anlık göstermek istediğimizde kullanabiliriz. Timer’in tick eventi içerisinde aşağıdaki satırı yazarız ve işlem tamamdır.
label1.Text = DateTime.Now.ToString();
Timer varsayılan olarak her 0,1 saniyede yani 100 milisaniyede bir çalışır. Yukarıdaki gibi bir işlem için timer tick süresini yani Interval özelliğini 1000 yaparız ve her saniyede bir çalışır bu şekilde hem saati anlık gösterir hemde işlemciyi boşa yormamış oluruz. Çünkü hiçbir değişiklik yapmazsak timer saniyede on kere çalışacak ve boşa işlem yapmış olacak.
C sharp Timer Özellikleri
Name = Timer’in adı.
Enabled = True ise Timer çalışır, False ise çalışmaz.
Interval = Timer’in tick yani tetiklenme süresi. Daha doğrusu iki tick arasındaki süre. Örn 60000 yaparsak timer dakikada bir tetiklenecektir.
C sharp Timer Eventleri
Tick = Timer’in tetiklenmesinde yapılacak işlemler. (Başka event yok :) )
Bahsettiğimiz gibi çok basit ama kullanışlı bir nesnedir. Anlık tarih sat gösterme, Zamana göre mail göndertme, Güncelleme kontrol ettirme gibi işlemlerde çok sık kullanırız. Bu gibi işlemlerde timer kullanmazsak kontrol işlemlerini de kullanıcıya bırakmış oluruz ki doğru bir yöntem olmaz.
Timer kullanımında bir kaç püf nokta vereyim.
Diyelim ki programda güncelleme var mı diye kontrol ettireceksiniz. (Kendi projelerimde kullandığım yöntemdir. ) SQL’deki kullanıcılar tablosunda kullanıcı exe güncel mi diye bir kolonunuz olsun. Bu kolondaki veri 0 ile güncel değildir, 1 ise günceldir diyelim. Siz bu kolonu 0 yaptınız ve ilk fırsatta da programın güncellenmesini istiyorsunuz. Ana menüye bir timer atarsınız ve saatte yada yarın saatte bir kontrol ettirirsiniz. (En mantıklı olan saatte bir kontrol olur.)
private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; // işlemleri yaparken timer süresi işlememesi için durdurduk. timer1.Stop(); int Guncelmi = 1; // sqlden güncelleme var mı yok mu kontrol ettiğiniz kodlar. Guncelmi = Convert.ToInt32(mySQLClass.Commscalar("select GuncelMi from Kullanıcılar where kul_kod = " + myGlobalClass.AktifKullaniciKodu + "")); // mySQLClass ve myGlobalClass kendi oluşturduğum class'larımdır. // siz burada sql işlemlerini nasıl yapıyorsanız o şekilde kullanırsınız. // güncelleme var ise kullanıcıya yüklensin mi diye sorduğunuz kodlar. if (Guncelmi == 0) { if (MessageBox.Show("Aktif bir güncelleme var. Güncelleme başlatılsın mı? Vazgeç derseniz 5 dakika ertelemiş olursunuz.", "Onay Verin!", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { // kullanıcı tamam derse güncellemeyi başlatacak kodlar } else { // kullanıcı güncellemeyi ertelerse 5 dakika sonra terkrar sorması için. timer1.Interval = 300000; // timer tetikleme süresini 5 dakika olarak ayarladık. // 5 * 60 * 1000 = 300000 } } timer1.Enabled = true; // timeri tekrar başlattık. timer1.Start(); }
Yukarıdaki kodlarda gördüğünüz gibi, timer tetiklendiği anda timeri durdurup işlemlerimizi bitirdikten sonra tekrar çalıştırdık. Örnekteki gibi bir işlemde timer’i durdurup tekrar çalıştırma yapmasakta olur. Çünkü timer’i bir saat olarak ayarladık ve içerisindeki kodların çalışma süresi bir saatten fazla sürmesine imkan yok. Ancak timer’in süresi bir dakika yada daha az ise bu durdurup çalıştırma işlemini yapmalıyız.
C sharp Timer konusunda aklıma gelenler bu kadar. Daha ne gibi örnekler verebilirim diye düşündüm ama aklıma bir şey gelmedi. :/
C sharp Timer Kullanımı , dersimizde bu kadar dostlar. Diğer derslerimizde görüşmek üzere.
C Sharp Eğitim Seti ve ERP Programlama ders listesi için tıklayınız.
Takipte ve Sağlıcakla kalın. ;)
Merhabalar aşagıda yazmış olduğunu timer ile ilgili kodlarda claslar kullanmışsınız ben yeni başladığım için o claslar ile birlikte mailime atabilirmisiniz.
memduhbulduk@gmail.com
ilginize çook teşekkür ederim.
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false; // işlemleri yaparken timer süresi işlememesi için durdurduk.
timer1.Stop();
int Guncelmi = 1;
// sqlden güncelleme var mı yok mu kontrol ettiğiniz kodlar.
Guncelmi = Convert.ToInt32(mySQLClass.Commscalar(“select GuncelMi from Kullanıcılar where kul_kod = ” + myGlobalClass.AktifKullaniciKodu + “”));
// mySQLClass ve myGlobalClass kendi oluşturduğum class’larımdır.
// siz burada sql işlemlerini nasıl yapıyorsanız o şekilde kullanırsınız.
// güncelleme var ise kullanıcıya yüklensin mi diye sorduğunuz kodlar.
if (Guncelmi == 0)
{
if (MessageBox.Show(“Aktif bir güncelleme var. Güncelleme başlatılsın mı? Vazgeç derseniz 5 dakika ertelemiş olursunuz.”, “Onay Verin!”, MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
// kullanıcı tamam derse güncellemeyi başlatacak kodlar
}
else
{
// kullanıcı güncellemeyi ertelerse 5 dakika sonra terkrar sorması için.
timer1.Interval = 300000; // timer tetikleme süresini 5 dakika olarak ayarladık.
// 5 * 60 * 1000 = 300000
}
}
timer1.Enabled = true; // timeri tekrar başlattık.
timer1.Start();
}
Üzgünüm. Kod gönderme gibi yardımlar yapmıyorum.
Derste kullandığım classlar;
mySQLClass = sql işlemlerimi yaptığım class ‘tır
myGlobalClass = proje genelinde kullanmam gereken değişkenler ve işlemleri içeren class’tır.
Bu class ‘ları sizin oluşturmanız gerekiyor.