Onu da bir gecikme metodu ile çözebiliriz
private void Gecikme(double saniye)//Gecikme metodu
{
if (saniye < 1) return;
DateTime _desired = DateTime.Now.AddSeconds(saniye);
while (DateTime.Now < _desired)
{
System.Windows.Forms.Application.DoEvents();
}
}Thread.Sleep yerine Gecikme(1); gibi bir kullanım da iş görecektir.
Evet işe yarayabilir ama bence çok verimsiz bir yöntem, cpu kullanımı o döngüde aşırı artar ve gui sürekli işlem yaptığı için kasar.