0

我正在尝试获取用户的当前位置,但代码显示错误...

// try get user location
Geolocator geo = new Windows.Devices.Geolocation.Geolocator();
geo.DesiredAccuracyInMeters = 10;
try {
    Geoposition position = await geo.GetGeopositionAsync();
} catch (Exception e) { }

我的问题是编译器在await geo.GetGeopositionAsync();

'await' 运算符只能在其包含方法或 lambda 表达式用 'async' 修饰符标记时使用。

但据我所见,这与微软显示的代码相同

我已经重新启动了 VS12 和 pc(这是一个 VM,但仍然存在)并且错误仍然在这里......出了什么问题?

我也试试这个,仍然得到同样的错误:

 Geoposition position = await geo.GetGeopositionAsync().asTask<Geoposition>();
4

1 回答 1

3

您需要使用异步标记您的方法:

void **async** themethod()
    {
    // try get user location
    Geolocator geo = new Windows.Devices.Geolocation.Geolocator();
    geo.DesiredAccuracyInMeters = 10;
    try {
        Geoposition position = await geo.GetGeopositionAsync();
    } catch (Exception e) { }
}
于 2013-04-15T01:11:53.853 回答