WPF延迟填充表的函数

本文关键字:函数 填充 延迟 WPF | 更新日期: 2023-09-27 18:17:34

我有一个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,但是当我在控制台应用程序上工作时,这是一个简单的解决方案。有什么建议吗?

WPF延迟填充表的函数

你可以使用新的异步功能

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的同步上下文表编辑将在UI线程上执行