【发布时间】:2019-11-20 05:57:22
【问题描述】:
我在这个方法中没有任何使用 await 的东西!它要我做什么?
public DatabaseHealthCheck(IConfiguration configuration)
{
_configuration = configuration;
}
public async Task<HealthCheckResult> CheckHealthAsync <------THIS WANTS ASNYC (HealthCheckContext context,
CancellationToken cancellationToken = default)
{
using (SqlConnection connection =
new SqlConnection(_configuration.GetConnectionString("PwdrsConnectionRoot")))
{
try
{
connection.Open();
}
catch (SqlException)
{
return HealthCheckResult.Healthy();
}
}
return HealthCheckResult.Healthy();
}
}
}
【问题讨论】:
-
您可以添加
await Task.Yield();或使用await connection.OpenAsync()代替 -
“这需要 ANYC” - 这是不正确的。没有接口可以要求方法为
async。但是,它可能要求返回类型为Task<T>。这就是这里发生的事情。 -
只需将
connection.Open()替换为await connection.OpenAsync()。
标签: c# async-await