C# Form'da İşlem Bekletme (Donmadan)

Yararlı

  • Evet

    Oy: 0 0.0%
  • Hayır

    Oy: 0 0.0%

  • Kullanılan toplam oy
    0
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Banlı Üye
Katılım
7 Nis 2020
Mesajlar
116
Çözümler
3
Tepki puanı
18
Yaş
30
6 HİZMET YILI
Selamlar

Timer'lar da veya diğer işlemlerde bazı komutların belirli bir süre sonra uygulanmasını isteriz.
Microsoft bunun için basic olarak
C#:
System.Threading.Thread.Sleep(10000);
Gibi bir illet koymuş. Bu komutu çalıştırdığınızda 10 saniyeliğine formda hiçbir şeye tıklanmıyor, pencere hareket etmiyor ve bütün elemanlar donuyor.


Bunun yerine kullanacağımız fonksiyon budur:
C#:
public void Bekle(double beklemeSuresi)
{
    const double saniye = 1.0# / (1440.0# * 60.0#);
    DateTime beklet;
    DateTime.Now.AddSeconds(saniye);
    beklet = DateTime.Now.AddSeconds(saniye).AddSeconds(beklemeSuresi);
    while (!DateTime.Now > beklet)
        Application.DoEvents();// Devam et
}

Kullanımı ise aşağıdaki gibidir:
Kod:
Bekle(10);
//yada
//Bekle(4.5);
 
PROGRAMMER
Seçkin Üye
Katılım
26 Ara 2015
Mesajlar
401
Çözümler
1
Tepki puanı
165
Ödüller
9
Yaş
27
10 HİZMET YILI
İşime yarar, ellerine sağlık.
 
Uzman Üye
Katılım
17 Nis 2020
Mesajlar
284
Çözümler
2
Tepki puanı
21
Yaş
36
6 HİZMET YILI
Yield lar vardı sanki böyle durumlar için.
 
Onaylı Üye
Katılım
22 Ocak 2020
Mesajlar
93
Çözümler
1
Tepki puanı
3
Ödüller
3
Yaş
34
6 HİZMET YILI
İşime yarar, ellerine sağlık.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst