0

不幸的是,在windows phone 7中没有android中的“广播接收器”概念,所以我正在尝试做类似的事情。

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

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

这在运行时给了我一个“ System.UnauthorizedAccessException”异常。事实上,访问所有 Application.Current 属性会产生相同的异常。我想了解的是,如果我无法从后台工作人员或线程访问当前页面,为什么我仍然需要它?如果我在主 UI 线程中,我知道我站在哪个页面正确?我在这里错过了什么吗?

请帮忙

4

1 回答 1

1

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

Deployment.Current.Dispatcher.BeginInvoke(() => 
{
    // Your code needing Application.Current
});
于 2013-04-24T14:59:37.720 回答