在为 Windows 8 商店应用程序使用 Bing 地图控件时,在非 UI 线程上创建新的Location 对象会导致异常。
WinRT 信息:应用程序调用了为不同线程编组的接口。
通常这意味着我不正确地尝试从后台线程更新 UI,但事实并非如此,因为这可以通过在空的 Windows 8 商店应用程序项目中放置一个按钮来重现:
<Button Content="Click me" Click="Button_Click"/>
并像这样添加一个事件处理程序:
private void Button_Click(object sender, RoutedEventArgs e)
{
Task.Run(() =>
{
var loc = new Location(1, 1);
});
}
Location 结构的构造函数真的在 UI 线程上做了什么,还是我在这里遗漏了什么?