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