任务之间的小延迟

本文关键字:延迟 之间 任务 | 更新日期: 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 事件处理程序来重置颜色。