【问题标题】:No Async method working没有异步方法工作
【发布时间】:2016-07-19 17:31:41
【问题描述】:

我的完整 Kinvey 和 Xamarin Async-API 无法使用 await/async 方法。我不知道问题出在哪里。我的代码没有发现任何错误,但是我使用的一般方法应该是可以的,比如

User _User= await KinveyXamarin._Client.User().LoginAsync();

我在网上搜索了一下,没有发现类似的问题。它返回 Compile_time 错误

错误 CS4033:“等待”运算符只能在异步中使用 方法。考虑用'async'修饰符标记这个方法和 将其返回类型更改为“任务”。

我真的不知道是什么导致了这个问题,这几乎是我使用异步 API 和 Kinvey 的第一步。任何帮助将不胜感激。

【问题讨论】:

  • 正如错误所说,您使用异步方法的方法也必须标记为异步

标签: c# xamarin async-await kinvey


【解决方案1】:

您编写await 的方法应该是async 方法本身。

public async Task MyMethodAsync()
{
    User _User = await KinveyXamarin._Client.User().LoginAsync();
    // more code
}

如果要返回对象,请使用Task<T>

public async Task<User> MyMethodAsync()
{
    User _User = await KinveyXamarin._Client.User().LoginAsync();
    // more code

    return _User;
}

额外说明:请尝试avoid async void,这是邪恶的。

编辑:最佳做法是在 -Async 上结束您的异步方法,以便让任何使用您的代码的人都清楚这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2017-04-17
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    相关资源
    最近更新 更多