6

我有一个项目,它使用来自 Entity Framework. WPF当实体框架在表示层上加载/保存数据时,我想显示线程进度条。

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

4

2 回答 2

4

我发现这个巧妙的例子Skip使用/Take方法来做到这一点。基本上,您每轮加载 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...

}
于 2012-09-10T05:06:03.427 回答
1

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

为此,您可以在此处查看基本示例此处提供了更精确的示例和可下载的代码。

于 2012-09-10T04:57:28.237 回答