如何在Windows服务中实现不执行ExecuteAsync



我正在实现一个windows服务,我不想在ExecuteAsync方法中写任何东西。但当我把它像下面这样保存时,它显示了一个警告。

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
}

警告

警告CS1998此异步方法缺少"等待"运算符,将运行同步地。考虑使用"await"运算符进行等待非阻塞API调用,或"等待任务.运行(…("以执行CPUbound工作在后台线程上。

如果我删除async,它开始给出错误

并非所有代码路径都返回值

那么,让ExecuteAsync在没有任何错误和警告的情况下什么是最好的方法。

目标框架:.Net5

删除async并返回Task.CompletedTask。当方法中不需要await时,请移除async。生成的代码将减少开销(使用async,方法被拆分为一个状态机(

protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
return Task.CompletedTask;
}

或更短:

protected override Task ExecuteAsync(CancellationToken stoppingToken) =>
Task.CompletedTask;

最新更新