无法修复Async上的返回类型

时间:2014-04-04 18:22:07

标签: c# windows-phone-8 asynchronous geolocation async-await

我目前仍然遇到此问题并出现此错误:

  • 问题:我无法弄清楚如何解决我得到的错误,即使我在谷歌搜索等上阅读有关它的文档。真的,不要告诉我再这样做,我不知道不知道怎么做!

  • 错误:异步方法的返回类型必须为void,任务或任务

  • 代码:

private async Geoposition userLocation()
    {
    Geolocator geolocator = new Geolocator();
    geolocator.DesiredAccuracyInMeters = 50;
    try
    {
        Geoposition geoposition = await geolocator.GetGeopositionAsync(maximumAge:TimeSpan.FromMinutes(5),timeout:TimeSpan.FromSeconds(10));
        return geoposition;
    }
    catch (UnauthorizedAccessException)
    {
        return null;
    }
    return null;
}

3 个答案:

答案 0 :(得分:4)

该错误正在告诉您究竟是什么问题。您的方法必须是voidTaskTask<T>

将您的方法签名更改为:

private async Task<Geoposition> userLocation() { ... }

答案 1 :(得分:2)

由于错误试图对您说:您需要将函数的返回类型更改为任务,因此它将如下所示:

private async Task<Geoposition> userLocation

答案 2 :(得分:2)

当您使用async时,您应该返回TaskTask<T>void

private async Task<Geoposition> userLocation()
{
    //Do something here
}

您可以查看this documentation有关异步返回类型

的信息