0

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()
                                  )

                 );

aaa1的代码:

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

        }

任何帮助都会很好。

4

1 回答 1

0

在单独的线程上执行长时间运行的操作。这将使您的 UI 线程保持畅通和响应。看起来BackgroundWorker对你的情况有好处。在这里阅读http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx

于 2013-01-04T18:57:11.983 回答