Sık sık Thread.Sleep();
kullanılmaması gerektiğinden bahsedildiğini görüyorum , ancak bunun neden böyle olduğunu anlayamıyorum. Soruna Thread.Sleep();
neden olabilecekse, aynı sonuca sahip güvenli olabilecek alternatif çözümler var mı?
Örneğin.
while(true)
{
doSomework();
i++;
Thread.Sleep(5000);
}
bir diğeri:
while (true)
{
string[] images = Directory.GetFiles(@"C:\Dir", "*.png");
foreach (string image in images)
{
this.Invoke(() => this.Enabled = true);
pictureBox1.Image = new Bitmap(image);
Thread.Sleep(1000);
}
}
goto:
yani sorunlarınız için muhtemelen daha iyi bir çözüm vardır Sleep
.
goto
, bir tasarım kokusundan çok bir kod kokusu gibi olan ile tam olarak aynı değildir . Bir derleyicinin goto
kodunuza s eklemesinde yanlış bir şey yoktur : bilgisayarın kafası karışmaz. Ama Thread.Sleep
tam olarak aynı değil; derleyiciler bu çağrıyı eklemez ve başka olumsuz sonuçları vardır. Ama evet, neredeyse her zaman daha iyi bir çözüm olduğu için onu kullanmanın yanlış olduğu genel düşüncesi kesinlikle doğrudur.
sleep()
kod girdiğinizde (veya test ettiğinizde ) bir köpek yavrusu ölüyor