在OnNavigatedFrom()方法中使用Task(在视图中)

时间:2014-05-14 06:28:18

标签: c# .net windows-phone-8

从Windows Phone 8应用程序中的页面导航时,将调用以下方法。用户是否会从第二个选项中受益?

选项1

protected override void OnNavigatedFrom(NavigationEventArgs e)
{
     //work with UI
     Image.Source = null;
     //....
}

选项2

protected override async void OnNavigatedFrom(NavigationEventArgs e)
{
    await Task.Run(() =>
    {
        Dispatcher.BeginInvoke(() =>
        {
           //work with UI
           Image.Source = null;
           //....
        });
    });
}

创建所有工作在UI线程上执行的Task是否有意义?

1 个答案:

答案 0 :(得分:0)

如果你的应用程序在OnNavigatedFrom之前做了一些后台活动(比如web请求)那么你需要使用UI线程来避免交叉线程异常,否则如果只做导航就不需要UI线程。必要时,绝对不需要创建任务只需Dispatcher即可运行。