数据虚拟化处理文本文件

时间:2013-08-12 06:18:56

标签: c# wpf winforms

我读了这个链接:

http://www.codeproject.com/Articles/34405/WPF-Data-Virtualization

使用Data Virtualization读取文本文件:

在DemoCustomerProvider.cs中,我改变了:

 for( int i=startIndex; i<startIndex+count; i++ )
        {
            Customer customer = new Customer { Id = i + 1, Name = "Customer" + (i+1) };
            list.Add(customer);

        }

到:

  for( int i=startIndex; i<startIndex+count; i++ )
        {
            using (StreamReader str = new StreamReader("C:\\test.txt"))
            {
                while (str.ReadLine() != null)
                {
                    string data=str.ReadLine();
                    Customer customer = new Customer { Id = i + 1, Name =data }   
                    list.Add(customer);

                }
            }
           }

文本大小为2 mb但是在启动Data Virtualization时,它使用3 gig的内存!

我想知道如何使用Data Virtualization来读取文本文件?

1 个答案:

答案 0 :(得分:0)

由于您正在阅读整个文本文件,因此您正在破坏数据虚拟化的目的,即只延迟加载数据的可见部分。要实现此目的,您需要一个具有固定记录大小的数据库或文件,并且您可以从中读取与UI中显示的部分对应的数据子集。请仔细阅读文章,了解它需要什么。此外,如果您只处理2MB的数据,请避免不必要的复杂性。不要用大锤打破坚果。

作为对您的评论的跟进,让我为您提供以下提示:    您正在重复读取文件并获取计数×文件中的记录数。    每次滚动时都会执行代码。从那里开始并相应地开始修改代码。