Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF delay填充表格的函数_C#_Wpf_Timer - Fatal编程技术网

C# WPF delay填充表格的函数

C# WPF delay填充表格的函数,c#,wpf,timer,C#,Wpf,Timer,我有一个表控件,我想用颜色填充它,每次绘制之间的延迟为X毫秒 这是我正在做的一个非常普遍的例子(它更长,但我删除了不重要的行): 以上只是冻结窗口,直到函数完成,并在一瞬间绘制所需的单元格 我知道我不应该使用睡眠,但当我在控制台应用程序上工作时,这是一个简单的解决方案。有什么建议吗?您可以使用新的异步功能 private async void myFunc() { while (SOME_CONDITION) { await Task.Delay(X_MS);

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

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

以上只是冻结
窗口
,直到函数完成,并在一瞬间绘制所需的单元格


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

您可以使用新的异步功能

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线程上执行

您正在通过执行睡眠来阻止当前UI线程。答案可以从中获得,您可以使用如中所示的调度员。
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;
    }
}