Windows Phone 7 - 加载一个大的 xml 文件

2024-01-11

我正在尝试将 xml 文件加载到我的应用程序中并将其显示在列表框中。问题是该xml文件大约有5MB,在手机上加载大约需要40秒。当手机锁定屏幕并返回时,又需要 40 秒。我尝试使用isolatedstorage来存储数据,但它并没有提高性能。这是我加载数据的代码:

XDocument loadedData = XDocument.Load("BigFile.xml");
            var data = from query in loadedData.Descendants("w")
                       orderby (string)query.Element("e")
                       select new myClass
                       {
                           First = (string)query.Element("a"),
                           Second = (string)query.Element("e")
                       };
        ListBox.ItemsSource = data.ToList<myClass>();

有什么办法可以加快加载速度吗?


要提高性能,您可以执行以下操作:

  • 确保加载已移出 ui 线程
  • 将文件分成多个较小的文件,一次加载一个文件,并在添加每个文件时更新列表。
  • 如果可能,请重新格式化数据(在添加到应用程序之前),以便它仅包含应用程序使用的绝对最小数据。
  • 将文件转换为不同的格式(尝试 JSON),这样可以更快地解析。
  • (如果使用 7.1)将数据放入数据库并将其部署在 XAP 中。
  • 重新考虑是否需要这么多数据。大/长列表很难在小屏幕设备上浏览。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows Phone 7 - 加载一个大的 xml 文件 的相关文章

随机推荐

  • 可以在 Final 块的中间引发 ThreadAbortException 吗?

    假设以下代码在单独的线程中运行 try var stuffToDispose new SomeClassThatNeedsDisposing doing thing with stuffToDispose finally if stuffT
  • $HOME/.local 的用途是什么

    我注意到我有 HOME local在我的机器上 似乎这个目录主要包含与 python 相关的内容 here http termbin com vw35是完整的列表吗 有点长 我想问这个目录是哪个动作创建的 我想是pip install us
  • 使用 VB.NET 访问 %appdata%

    如何通过VB NET访问 appdata 中的文件 例如 C Users Kuzon AppData Roaming program 如果是在另一台 Windows 7 计算机上 我该如何访问该文件 另外 在 Windows XP 上您将如
  • 如何在 EXT-GWT 中拆分面板?

    我在用着ext gwt http www sencha com products gwt 并且不知道如何分割面板 以便我有 2 个小部件 可调整大小的分割器的每一侧各一个 两个小部件的高度均为 100 宽度可变 本质上 我想要的是这样的 W
  • Firebase:如何从数据中检索存在特定键的记录?

    我在 firebase 中的数据如下所示 application companies firebase creation name Firebase Inc location USA google creattion name Google
  • 如何将Android应用程序发布到特定屏幕分辨率的市场?

    我为屏幕尺寸为 480x800 的设备开发了一款 Android 应用程序 现在我不知道如何针对这个特定的屏幕尺寸发布这个应用程序 如果我使用清单中的标签进行过滤 它可以接受 480x800 WVGA800 和 480x854 WVGA85
  • 引用变量的增量运算符

    为什么预增量可以在引用变量上工作 而后增量却不能 include
  • PHP:时差(分:秒:十分位)

    操作时如何计算时差minutes seconds tenth 例如我怎样才能实现这个例子 40 24 5 67 52 4 27 27 9 我本来打算用这个 但后来发现缺少十分之一 time1 new date 40 24 5 time2 n
  • 0 < lineWidth < 1 时的画布线条行为

    出于好奇 我想尝试设置lineWidth lt 1因为即使我的分辨率设置正确 1px 的线条看起来也很粗 不出所料 它不起作用 但在 Chrome 和 Firefox 上有这种奇怪的行为 未在其他地方测试过 左边是 lineWidth 1
  • 首先代码自定义SQL迁移超时异常

    我正在尝试通过执行自定义 Sql 使用实体框架迁移创建全文索引 我的迁移类如下所示 public partial class DocumentContentFullTextIndex DbMigration public override
  • Django 在 BooleanField 上进行注释

    我有以下型号 class Foo models Model pass class Bar models Model foo models ForeignKey Foo is successful models BooleanField 我想
  • Chrome / Firefox 中的 Javascript 内存使用和调试(雷区)

    我目前正在使用 Google O3D WebGL 框架开发一个应用程序 这是我第一次如此密集地使用 JavaScript 这些功能只完成了 20 左右 但应用程序本身已经开始占用大约 160 meg 内存 同时让应用程序运行 在 Chrom
  • 指向数组第一个元素的指针的地址?

    我对指向数组开头的指针在内存中的位置有点困惑 根据我的理解 数组和指针可以使用相同的函数 如 和 因此 如果我创建一个 char 数组 我会理解 buffer buffer 0 所以不带括号的数组名就像一个指针 其中包含数组第一个条目的地址
  • PHP Ratchet:找不到类 Memcache

    我正在关注 Ratchet 的教程 对于SessionProvider页面 代码是这样的
  • Meteor 如何使用多个 .less 文件

    我正在尝试在 Meteor 应用程序中使用两个 less 文件 所有文件都位于单个 Meteor 应用程序文件夹中 我有一个 less 文件 它定义了一般 UI 外观 在 ui less 中 ui gradient topdown from
  • XAMPP - 错误:MySQL 意外关闭

    由于某种原因 我重新安装了 XAMPP 但 MySQL 无法工作 在控制台中出现以下错误 01 56 03 mysql Error MySQL shutdown unexpectedly 01 56 03 mysql This may be
  • 通过 powershell 在 jenkins 中使用 AnsiColor

    关于如何使用 powershell 为 Jenkins 上的输出着色有什么想法吗 我已经在 J enkins 上安装了 AnsiColor 插件 并且已将作业设置为使用 AnsiColor 唯一的问题是如何让我的powershell在Jen
  • 通过 StoredProcedure 每日/每周/每月记录计数搜索

    Using 微软SQL服务器 我做了一个名为SP Get CallsLogged 我有一个名为TRN Call 它有一个名为CallTime这是一个日期时间 我的应用程序中有一个网页 用户在其中输入 开始日期 约会时间 EndDate 约会
  • java 使用线程下载多个文件

    我正在尝试使用线程下载与模式匹配的多个文件 该模式可以匹配 1 5 或 10 个不同大小的文件 为了简单起见 下载文件的实际代码位于 downloadFile 方法中 而 fileNames 是与模式匹配的文件名列表 我如何使用线程来做到这
  • Windows Phone 7 - 加载一个大的 xml 文件

    我正在尝试将 xml 文件加载到我的应用程序中并将其显示在列表框中 问题是该xml文件大约有5MB 在手机上加载大约需要40秒 当手机锁定屏幕并返回时 又需要 40 秒 我尝试使用isolatedstorage来存储数据 但它并没有提高性能