首页 > 解决方案 > Xamarin.Forms:调试器在 GetPositionAsync() 处停止?

问题描述

我正在尝试检索我所在位置的坐标,但调试器永远不会超出var myPosition = await locator.GetPositionAsync();. 调试器永远不会碰到浮动lat并被lon赋值的行。

我没有收到错误,它只是挂起,取消的唯一方法是停止调试。这是代码:

private static async Task<string> GetPosition()
{
    var locator = CrossGeolocator.Current;
    locator.DesiredAccuracy = 50;
    var myPosition = await locator.GetPositionAsync();
    float lat = myPosition.Latitude;
    float lon = myPosition.Longitude;
    return string.Empty; 
}

public MainPage()
{
    InitializeComponent();
    var position = GetPosition().Result;
    //Everything else
}

为什么调试器不过去var myPosition = await locator.GetPositionAsync();?我认为它与异步await调用有关,但我不知道如何解决它。

我尝试var myPosition = await locator.GetPositionAsync().ConfigureAwait(false);了,因为它解决了类似的问题,但调试器仍然没有超出GetPositionAsync.

标签: androidxamarinxamarin.formsvisual-studio-2017

解决方案


推荐阅读