Wp7无法从后台工作程序获取当前页面



不幸的是,在windows phone 7中没有像android那样的"Broadcast Receiver"概念,所以我试着做一些类似的事情。

在我的应用程序中,我运行一个后台工作程序,调用一个函数,完成后我必须刷新页面中的一些数据。我不知道是否所需的页面将是当前页面在完成时间,所以我要做一个测试。我在一些论坛上发现了这段代码:

var frame = Application.Current.RootVisual as PhoneApplicationFrame;
var startPage = frame.Content as PhoneApplicationPage;

这会在运行时给我一个' System.UnauthorizedAccessException '异常。实际上,访问所有的应用程序。当前属性给出相同的异常。我想要理解的是,如果我不能从后台工作人员或线程访问当前页面,为什么我需要它呢?如果我在主UI线程中,我知道我在哪个页面,对吧?我遗漏了什么吗?

请帮

只能从UI线程访问Application.Current。使用Dispatcher.BeginInvoke从你的后台线程委托执行UI线程:

Deployment.Current.Dispatcher.BeginInvoke(() => 
{
    // Your code needing Application.Current
});

最新更新