Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
Wpf数据网格don';t刷新动态_Wpf_Multithreading_Datagrid - Fatal编程技术网

Wpf数据网格don';t刷新动态

Wpf数据网格don';t刷新动态,wpf,multithreading,datagrid,Wpf,Multithreading,Datagrid,我有以下代码,其中TabResultadoBusqueda是一个Datagrid 我的问题是,当我点击这个窗口的一个按钮时,它会被冻结,直到操作完成 我希望用户可以在加载Datagrid时做其他事情,因为执行操作的时间是1分钟 示例代码事件在一个按钮中单击: TabResultadoBusqueda.ItemsSource = null; TabResultadoBusqueda.ItemsSource = (IEnumerable<articuloPOCO>)cambioDeA

我有以下代码,其中
TabResultadoBusqueda
是一个
Datagrid

我的问题是,当我点击这个窗口的一个按钮时,它会被冻结,直到操作完成

我希望用户可以在加载
Datagrid
时做其他事情,因为执行操作的时间是1分钟

示例代码事件
在一个
按钮中单击

 TabResultadoBusqueda.ItemsSource = null;
 TabResultadoBusqueda.ItemsSource = (IEnumerable<articuloPOCO>)cambioDeArticuloListaAArticuloPOCOlista(m.todosArticulosPAGINADOS(0, 50));

           TabResultadoBusqueda.Dispatcher.BeginInvoke(DispatcherPriority.Background,
                     new Action(
                         () => aaaa1()
                                  )

                 );
TabResultadoBusqueda.ItemsSource=null;
TabResultadoBusqueda.ItemsSource=(IEnumerable)cambioDeArticuloListaAArticuloPOCOlista(m.todosArticulosPAGINADOS(0,50));
TabResultadoBusqueda.Dispatcher.BeginInvoke(DispatcherPriority.Background,
新行动(
()=>aaaa1()
)
);
AA1的代码:

for (int j = 2; j < 15; j++)
        {
            ((List<articuloPOCO>)TabResultadoBusqueda.ItemsSource).AddRange((IEnumerable<articuloPOCO>)cambioDeArticuloListaAArticuloPOCOlista(m.todosArticulosPAGINADOS(j, 50)));
            TabResultadoBusqueda.Items.Refresh();

        }
for(int j=2;j<15;j++)
{
(列表)TabResultadoBusqueda.ItemsSource)AddRange((IEnumerable)cambiodearticulolistaaaarticulopocolista(m.todosArticulosPAGINADOS(j,50));
TabResultadoBusqueda.Items.Refresh();
}

任何帮助都很好。

在单独的线程上执行长时间运行的操作。这将使您的UI线程保持畅通和响应。看起来一个
后台工作人员
会对你的情况有好处。请在此处阅读相关内容

AddRanges,然后再设置项目Source是否可以编写最小示例?我进行了测试,它也做了同样的事情。你还在使用Dispatcher吗?为什么不能在绑定之前添加范围而不使用Dispatcher?