【发布时间】:2021-07-28 09:14:56
【问题描述】:
我希望标签的文本在按下按钮后随其颜色一起改变。
第一部分旨在将Text 和ForeColor 更改为Color.Orange,然后等待1 秒钟,然后再次更改Text 属性并将ForeColor 设置为Color.LightGreen。
我的问题是它没有按顺序执行,它只是跳过第一部分并更改为第二部分(文本变为“完成!”,颜色变为浅绿色)。
这是我的代码:
private void button1_Click(object sender, EventArgs e)
{
label6.Text = "Working..";
label6.ForeColor = Color.Orange;
System.Threading.Thread.Sleep(1000);
label6.Text = "Finsihed!";
label6.ForeColor = Color.LightGreen;
}
【问题讨论】:
-
不要在 UI 线程中使用
Sleep。主要是因为它会阻止用户交互的形式,你所体验的只是使用它的另一种效果。 delay something 还有其他方法:最推荐使用Timer和async/await(其他形式的多线程中最好的)。