任务之间的延迟很小

时间:2014-04-08 13:39:06

标签: c#

我有一个更改面板backColor的应用程序 然后我希望它等待大约5秒钟,然后将backColor更改回原始值。我尝试过使用Thread.Sleep(5000),但它并没有延迟下一个循环的执行。我搜索了最近两天试图找到这个问题的答案。我仍然是编程新手。所以使用advance技术并不能帮助我理解这个过程。 这是我尝试过的代码:

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;

}

2 个答案:

答案 0 :(得分:0)

过去我遇到类似问题的方法是使用Update()方法。

答案 1 :(得分:0)

假设您正在创建某种形式的Windows应用程序,那么您可以使用timer

用代码替换调用Thread.Sleep的行以启动计时器

并创建一个TimerElapsed事件处理程序来重置颜色。