从异步方法转换错误返回布尔值

时间:2015-12-29 08:41:58

标签: c# .net asynchronous boolean

我有一个返回Async值的Boolean方法但是当我调用该函数并尝试将值设为bool时,我收到的错误为:

  

无法将类型'system.threading.tasks.task bool'隐式转换为'bool'。

以下是我调用async方法的方法:

bool IsAvailable = Helper.search(Name);

如何纠正?

2 个答案:

答案 0 :(得分:5)

应该是

bool IsAvailable = await AdHelper.searchGroup(Name);

这里有一个很好的例子http://www.dotnetperls.com/async

如果您无法等待,可以查看此答案here

答案 1 :(得分:2)

只是扩展Radin的答案;

AdHelper.searchGroup(Name) - 您尝试分配的值是一项任务,因此您收到了错误:

  

无法将类型&system;系列广告.tasks.task bool' 隐式转换为' bool'

您可能想要的是任务返回的值。要从任务中获取异步值,您需要使用关键字 await

  

await - 一个运算符,它应用于异步方法中的任务,以暂停方法的执行,直到等待的任务完成。该任务代表了正在进行的工

因此,为了从async任务中获取值,您需要使用 -

bool IsAvailable = await AdHelper.searchGroup(Name);