WPF延迟填充表的函数

时间:2013-06-10 09:04:08

标签: c# wpf timer

我有一个Table控件,我想用颜色填充它,每个颜色之间的延迟为X毫秒。

这是我正在做的一个非常一般的例子(它更长,但我删除了不重要的行):

private void myFunc()
{
     while (SOME_CONDITION) {
          Thread.Sleep(X_MS);
          this.myTable.RowGroups[0].Rows[SOME_ROW].Cells[SOME_COLUMN].Background = Brushes.Blue;
     }
}

上面只是将Window冻结,直到功能完成,并在一瞬间绘制所需的单元格。

我知道我不应该使用Sleep,但是当我使用控制台应用程序时,这是一个简单的解决方案。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您可以使用新的异步功能

private async void myFunc()
{
    while (SOME_CONDITION) {
        await Task.Delay(X_MS);
        this.myTable.RowGroups[0].Rows[SOME_ROW].Cells[SOME_COLUMN].Background = Brushes.Blue;
    }
}

因为WPF的同步上下文表editig将在UI线程上执行