0

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

4

1 回答 1

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

于 2013-06-10T09:24:17.010 回答