我需要了解如何在一组命令之间创建延迟。我的背景是与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)为了学习如何使用代码块。 –