我正在尝试将xml文件加载到我的应用程序并在ListBox上显示它。问题是xml文件大约是5 MB,手机加载大约需要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>();
无论如何都要加快装载速度?
答案 0 :(得分:4)
要提高性能,您可以执行以下操作:
答案 1 :(得分:0)
您可以尝试将该代码放入后台线程中,以便在主线程中继续使用其他内容时进行操作。
delcare&#34;私人BackgroundWorker backgroundWorker;&#34;在MainPage分部类
中将此代码放在MainPage()构造函数(或MainPage_loaded)
中// Initiaze后台工作人员显示收藏夹
if (backgroundWorker == null)
{
backgroundWorker = new BackgroundWorker();
backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker_DoWork);
}
backgroundWorker.RunWorkerAsync();
然后将代码放在此处:
void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
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>();
}
希望这可以解决问题。