0

我有以下两种方法。当用户从 ui 中单击开始按钮时,geoLocator_PositionChanged 方法中的步骤 geoLocator_PositionChanged 被触发并调用另一个方法 geoLocator_PositionChanged。但是当在执行第一条语句时尝试块时,它会引发以下错误:

“应用程序调用了一个为不同线程编组的接口。(来自 HRESULT 的异常:0x8001010E (RPC_E_WRONG_THREAD))”

私有异步无效 btnStartStop_Click_1(对象发送者,RoutedEventArgs e)

    {
      geoLocator.PositionChanged += geoLocator_PositionChanged; 
     }

async void geoLocator_PositionChanged(地理定位器发件人,PositionChangedEventArgs 参数)

    {

        MessageDialog msgdlg = null;
        bool bDisplayDialog = false;
        try
        {
            lblAltValue.Text = args.Position.Coordinate.Altitude.ToString();  
    }
    catch
    {
    }
    }

任何帮助我该如何解决这个问题?

4

1 回答 1

3

您尝试从另一个访问 UI 线程。

尝试类似的东西

Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync
(Windows.UI.Core.CoreDispatcherPriority.Normal, () => 
{
    //HERE GOES THE UI ACCESS LIKE this.textbox.text = "MY AWESOME TEXT"; 
});
于 2012-11-28T15:40:17.670 回答