【发布时间】:2020-03-12 21:16:43
【问题描述】:
我正在阅读有关 asp.net core 中的健康检查。
我看过这段代码。
public class ExampleHealthCheck : IHealthCheck
{
public Task<HealthCheckResult> CheckHealthAsync(
HealthCheckContext context,
CancellationToken cancellationToken = default(CancellationToken))
{
var healthCheckResultHealthy = true;
if (healthCheckResultHealthy)
{
return Task.FromResult(
HealthCheckResult.Healthy("A healthy result."));
}
return Task.FromResult(
HealthCheckResult.Unhealthy("An unhealthy result."));
}
}
在上面的代码中,CheckHealthAsync 方法没有被标记为异步。是不是同时支持同步和异步功能?
【问题讨论】:
-
它不需要标记为异步。它返回一个
Task,使其与外界异步。 -
如果方法使用
await运算符,则只需标记async。此方法不使用await运算符。 -
@juunas 我觉得你的评论很混乱。名称中包含 Async 不会使它是异步的。这只是一个命名约定。
-
是的。它只是一个命名约定,在这里使用是因为返回了一个任务。
-
"TAP 中的异步方法在操作名称后面包含 Async 后缀,用于返回等待类型的方法,例如 Task、Task
、ValueTask 和 ValueTask 。" - Naming, parameters, and return types
标签: c# asp.net-core async-await