C# ile yazdığım uygulama donuyor. Sebebi ne olabilir?

ahmet5847 (92) 5 yıl önce sordu

Aşağıdaki C# kodunu yazdığımda uygulama donuyor sebebi nedir ? 

Programamın amacı perşembe gününe ne kadar kaldığını gösteren program yapmak ayrıca saniyede bir değerleri yenileyecek

private void button1_Click(object sender, EventArgs e)
        {
            DateTime perşembe = new DateTime(2018, 08, 30, 20, 00, 00);
            DateTime yardımcı = new DateTime(2018, 08, 30, 20, 00, 00);
            while (1==1)
            {
        System.Threading.Thread.Sleep(1000);
                DateTime bugün;
            bugün = DateTime.Now;

           

            if (perşembe.Month < bugün.Month)
            {
                perşembe = yardımcı.AddDays(7);
                yardımcı = perşembe;


            }


            while (perşembe.Day <= bugün.Day)
            {
                perşembe = perşembe.AddDays(7);
            }
            while (perşembe.Year < bugün.Year)
            {
                perşembe = perşembe.AddDays(7);
            }

            yardımcı = perşembe;
            TimeSpan timeSpan;
            timeSpan = perşembe - bugün;
            textBox1.Text = (timeSpan.Days + " Gün " + timeSpan.Hours + " Saat " + timeSpan.Minutes + " Dakika Kaldı" + timeSpan.Seconds + "Saniye Kaldı");
        }



 

 

 

ilkaybaki 5 yıl önce

.1.Sorunuz soru başlığıyla alakalı olması zorunludur,

hakan 5 yıl önce

@alattin C# konusu.

Toplam 1 cevap


alattin (17095) 5 yıl önce cevapladı

Sorunu basitçe  Application.DoEvents(); ile çözebilirsin. Koduna  Application.DoEvents(); ilave et. Konudu şu şekilde düzelt:

System.Threading.Thread.Sleep(1000);
Application.DoEvents();


Bunu yaptığında kodun donmayacaktır.

Application.DoEvent() ile ilgili daha fazla bilgi için: Application.DoEvents nedir?

 

ahmet5847 5 yıl önce

Teşekkürler alattin abi

ahmet5847 5 yıl önce

Peki Application.DoEvents(); bu kod tam olara ne işe yarıyor benim yazı mı sen mi düzelttin ?

ahmet5847 5 yıl önce

@alattin

alattin 5 yıl önce

@ahmet5847 evet yazını ben düzelttim, bunu ayrı bir konuda yazayım daha faydalı olur.