Windows Phone 8.1 将代码更改为异步任务

Windowphone 8.1 change code to async task

我想读取 XML 文件并将其数据绑定到列表框。

在第1页,点击按钮,进入第2页

在第 2 页中,来自 xml 文件的列表框绑定数据。

这是从 xml 文件获取数据的代码:

class GetData
{
    public object obj_get_data(string xml_file)
    {
        XDocument xdoc = XDocument.Load(xml_file);
        var list_emp = from query in xdoc.Descendants("emp")
                        select new du_lieu.thong_tin
                        {
                            Name = (string)query.Element("age"),
                            Age = (string)query.Element("age"),
                        };
        return list_emp;
    }
}

在第 2 页的 NavigationHelper_LoadState 我写了这段代码来绑定数据:

private void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
{            
    GetData gd = new GetData();
    object obj = gd.obj_get_data(xml_danh_sach);
    listbox1.ItemsSource = obj;
}

有了这段代码,一切就OK了, 但是,当点击 page1 上的按钮时,应用会延迟几秒钟才能转到 page2。

我知道我需要使用异步任务来处理这个问题并进行 bar/ring 来制作应用程序 像平常一样, 但我不知道该怎么做。 大家能帮帮我吗?

试试这个:

class GetData
{
    public async Task<object> obj_get_data(string xml_file)
    {
        XDocument xdoc = await XDocument.Load(xml_file);
        var list_emp = from query in xdoc.Descendants("emp")
                        select new du_lieu.thong_tin
                        {
                            Name = (string)query.Element("age"),
                            Age = (string)query.Element("age"),
                        };
        return list_emp;
    }
}

还有这个:

private async Task NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
{            
    GetData gd = new GetData();
    object obj = await gd.obj_get_data(xml_danh_sach);
    listbox1.ItemsSource = obj;
}