次の2つの方法があります。ユーザーが UI から開始ボタンをクリックすると、geoLocator_PositionChanged メソッドのステップ geoLocator_PositionChanged が起動され、他のメソッド geoLocator_PositionChanged が呼び出されます。しかし、最初のステートメントの実行中に try ブロックになると、次のエラーがスローされます。
「アプリケーションは、別のスレッド用にマーシャリングされたインターフェイスを呼び出しました。(HRESULT からの例外: 0x8001010E (RPC_E_WRONG_THREAD))」
private async void btnStartStop_Click_1(オブジェクト送信者, RoutedEventArgs e)
{
geoLocator.PositionChanged += geoLocator_PositionChanged;
}
async void geoLocator_PositionChanged (Geolocator 送信者、PositionChangedEventArgs args)
{
MessageDialog msgdlg = null;
bool bDisplayDialog = false;
try
{
lblAltValue.Text = args.Position.Coordinate.Altitude.ToString();
}
catch
{
}
}
この問題を解決するにはどうすればよいですか?