任务之间的小延迟
本文关键字:延迟 之间 任务 | 更新日期: 2023-09-27 17:57:16
我有一个应用程序可以更改面板的背景颜色。
然后我希望它等待大约 5 秒钟,然后将背景颜色更改回原始值。 我尝试过使用 Thread.Sleep(5000),但它不会延迟下一个循环的执行。 在过去的两天里,我一直在寻找这个问题的答案。 我对编程还很陌生。 因此,使用先进的技术并不能帮助我理解这个过程。这是我尝试过的代码:
StringBuilder MovesText = new StringBuilder(MovesTxt.Text);
//Start White Horizonal Drill
for (int Row = 7; Row > 3; --Row)
{
chessBoardPanels[ Column ,Row].BackColor = Color.Red;
++Column;
//Add text to Moves TextBox
MovesText.AppendFormat("WhtB {0} {1}{2}",
ColumnText,RowText,Environment.NewLine);
MovesTxt.Text = MovesText.ToString();
++ColumnText;
--RowText;
}
Thread.Sleep(5000); //This is where I want a 5 second delay
//Start White Horizonal
Column = 0;
for (int Row = 7; Row > 4; --Row)
{
chessBoardPanels[Column, Row].BackColor = Color.White;
++Column;
//Add text to Moves TextBox
++ColumnText;
--RowText;
}
我过去处理此类问题的方式是使用 Update() 方法。
假设您正在创建某种形式的Windows应用程序,那么您可以使用计时器
将调用 Thread.Sleep 的行替换为启动计时器的代码
并创建一个 TimerElapsed 事件处理程序来重置颜色。