Xdocument如何保存方法?

时间:2013-08-30 15:32:29

标签: c# xml windows-phone-8

我正在构建Windows Phone 8 App。我已经有了一个XML,当应用程序启动时,它应该将XML中的数据加载到Longlistselectors

我有一个后台工作者从URL加载XML,保存到另一个XML文件,然后重新加载该XML并更新Longlistselector

以下是代码:

 private async void BwDoWork(object sender, DoWorkEventArgs e)
    {
        var xdoc = XDocument.Load("APPSDATA.xml");
        var listnode = from c in xdoc.Descendants("Ungdung") select c;
        var xElements = listnode as IList<XElement> ?? listnode.ToList();
        foreach (var xElement in xElements)
        {
            var element = xElement.Element("Id");
            if (element != null)
            {
                var appId = element.Value;
                var appVersion = await GetAppsVersion(appId);
                xElement.SetElementValue("Version", appVersion.ToString());
            }
        }
        var file = new FileStream("APPSDATA.xml", FileMode.Open);

        xdoc.Save(file);
    }

这里奇怪的是:我不知道foreach循环何时完成它的工作,所以我在RunWorkerCompleted方法中设置了10s的线程睡眠。在此之后,如果我退出应用程序并重新启动它,将加载带有新信息的XML

但是如果我在该线程休眠后尝试在WorkerCompleted中执行任何操作,则不会保存XML。

我对此一无所知。有人有解决方案吗?
抱歉我的英语不好。

private void BwRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        Thread.Sleep(10000);
        SystemTray.SetIsVisible(this, false);  

    }

0 个答案:

没有答案