我有以下代码,其中TabResultadoBusqueda
是Datagrid
。
我的问题是,当我点击此窗口的一个按钮时,它会冻结,直到操作完成。
我希望用户在Datagrid
加载时可以做其他事情,因为执行操作的时间是1分钟。
一个Click
中的示例代码事件Button
:
TabResultadoBusqueda.ItemsSource = null;
TabResultadoBusqueda.ItemsSource = (IEnumerable<articuloPOCO>)cambioDeArticuloListaAArticuloPOCOlista(m.todosArticulosPAGINADOS(0, 50));
TabResultadoBusqueda.Dispatcher.BeginInvoke(DispatcherPriority.Background,
new Action(
() => aaaa1()
)
);
aaaa1的代码:
for (int j = 2; j < 15; j++)
{
((List<articuloPOCO>)TabResultadoBusqueda.ItemsSource).AddRange((IEnumerable<articuloPOCO>)cambioDeArticuloListaAArticuloPOCOlista(m.todosArticulosPAGINADOS(j, 50)));
TabResultadoBusqueda.Items.Refresh();
}
任何帮助都会很好。
答案 0 :(得分:0)
在单独的线程上执行长时间运行操作。这将使您的UI线程保持畅通无阻且响应迅速。看起来BackgroundWorker
对你的情况有好处。在此处阅读http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx