我需要了解如何在一組命令之間創建延遲。我的背景是與C(DOS),現在恢復使用C#在Visual Studio 2015年這個概念是我掙扎代碼:C#中的延遲函數
using System.Threading;
private void button1_Click(object sender, EventArgs e) // Button
{
int i;
for (i = 0; i < 10; i++)
{
textBox1.BackColor = Color.Red;
Thread.Sleep(100);
textBox1.BackColor = Color.Yellow;
Thread.Sleep(100);
}
}
我期待文本框的背景顏色會改變或者10倍但循環結束後我只能看到黃色。如果我增加延遲,我注意到程序需要時間才能完成。我瀏覽了一些相關的文章,但無法理解。任何幫助將不勝感激。謝謝
WinForms是單線程的,你對'Thread.Sleep'的調用會阻塞該線程。你必須避免阻塞UI線程。文本框只會在控件產生到代碼中從不發生的WM_PAINT窗口消息處理程序時纔會改變顏色。 – Dai
看看[這篇文章](http://stackoverflow.com/editing-help)爲了學習如何使用代碼塊。 –