windows-phone-7 - Windows Phone 8等待不等待

标签 windows-phone-7 .net-4.5 windows-phone-8

我正在编写示例 Windows Phone 8 应用程序。我还安装了框架 Async for .NET Framework 4, Silverlight 4 and 5, and Windows Phone .

但是,方法上的 await 不会等待,我的 mainpage.xaml 会加载,它会尝试访问尚未填充的属性。

这是我的代码。

public static ObservableCollection<Model.CatalogCategory> Products { get; set; } 
private async void Application_Launching(object sender, LaunchingEventArgs e)
    {
        ApplicationViewModel vm = new ApplicationViewModel();
        Products = await vm.LoadLocalDataAsync();

    }

在此方法之后,将加载 mainpage.xaml,它会尝试访问“Products”并抛出空引用异常。

我需要采取其他方法吗??

最佳答案

您没有正确理解 Async 和“等待”的含义。 'await' 仅等待该方法 block 中的其余代码。 await 行之后的其余代码被转换为仅在异步任务完成后调用的回调。这不会阻止整个方法。该方法被视为已完成,控制权返回给调用者。

您要么删除那里的“等待”,要么尝试在 MainPage_Loaded 事件或 OnNavigatedTo 事件中加载数据。任何适合你的。

关于windows-phone-7 - Windows Phone 8等待不等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13968580/

相关文章:

c# - XElement 中的 XML 解析 ':'

c# - 如何在 Windows Phone Mango 中订阅以获取 ShareLinkTask 通知?

javascript - 带有 PhoneGap + Angular 的 Windows Phone 7 和 8 在引导过程中死机

c# - Windows Phone 8 Facebook 认证

c# - 将 Windows Phone 麦克风转换为 wma 或 mp3

windows-phone-7 - Windows Phone 中的 textBox1_TextChanged 性能变慢

c# .net 4.5 async await Task.Wait() 阻塞问题

c# - 'System.Guid' 不是属性类

timezone - MVC 处理时区和 JSON 序列化 - 如何转换为特定时区

xaml - 滞后的 Storyboard动画 Windows Phone 8.1