c# ile bekletmeden gecikme yapmak

c# dilinde

System.Threading.Thread.Sleep(x);
komutunu kullanarak “x” milisaniye kadar bekletme yapabiliriz ancak bu süre boyunca programımız donar. Bu hiç hoş olmayan bir yöntemdir. Konsol uygulamalarında çok fazla önemli olmasada visual ortamda kaçınmak gerekir.  Kaçınmak gerekir de nasıl bekleteceğiz?

Beklemenin başladığı zamanı(saati) biliyoruz. Ne kadar bekleyeceğimizide bildiğimize göre, sürenin başlangıç saati ile bekleyeceğimiz kadar süreyi toplarız, bu da bizim bitiş saatimizi(zamanımızı) verir. Bir fonksiyon yazar, istediğimiz bitiş zamanına gelmişmi diye kontrol ettirirsek programı dondurmadan bekleme yapabiliriz.

privatevoid Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("Gecikme Başlıyor");
gecikme(10);
MessageBox.Show("gecikme bitti");
}
publicvoid gecikme(int saniye)
{
saniye = ((saniye +Convert.ToInt32(DateTime.Now.Second))%60);
for (; ; )
{
if (saniye == DateTime.Now.Second) break;
}
}

 

Bir Cevap Yazın