当Entity Framework传输数据时显示进度条

时间:2012-09-10 04:52:43

标签: c# wpf multithreading entity-framework

我有一个项目使用Entity Framework中的数据并将其显示在WPF中。当Entity Framework在表示层上加载/保存数据时,我想要显示线程进度条。

你能帮我理解我该怎么做?

2 个答案:

答案 0 :(得分:3)

我发现使用Skip / Take方法可以做到这一点example。基本上你每轮加载x个记录,你在下一轮中Skip,并根据表中所有数据的数量来计算,这使你可以每轮更新进度条。

看看这个:

List<MyDataTable> someData = new List<MyDataTable>();
int rowCount = dt.myDataTable.Count();

//TODO: <= display a progress bar here, and set max to rowCount...

int currentRows = 0;
while (currentRows < rowCount)
{
  someData.AddRange(dt.myDataTable.Skip(currentRows).Take(10000).ToList());
  currentRows = someData.Count;

  //TODO: <= update progress here...

}

答案 1 :(得分:1)

您可以使用Dispatcher Thread来实现此目的;基本上,您需要创建一个在其他UI类中扩展的公共类。

要实现这一目标,您可以在此处查看basic example;可以使用更精确的示例和可下载代码here