【问题标题】:Windows phone 8 await not waitingWindows phone 8 等待不等待
【发布时间】:2013-06-22 19:46:51
【问题描述】:

我正在编写一个示例 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”并抛出一个空引用异常。

我需要采取不同的方法吗??

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      相关资源
      最近更新 更多