错误描述:
错误CS1997 由于“LoadEquipInfoService.LoadDesc()”是返回“Task”的异步方法,因此返回关键字不能后接对象表达式。是否要返回“Task<T>”

原因及解决方案分析:
在使用async/await异步方法时,如果方法里面如果没有返回值,默认返回一个Task,其表示该异步方法无返回值。
无返回值的情况下, async Task 等同于async void,两者间的区别是:异步函数签名为async Task(Task<T>)时,函数调用处可以使用await Task.WhenAny(), await Task.WhenAll() 等方式组合使用;而Async Void 则不行。
在调用其他异步函数的 主函数结尾处返回时,可以 await Task.WhenAny(), await Task.WhenAll() ,await Task.CompletedTask 来处理。

接收异步方法的task一般可以这样处理:
1、阻塞式
private async static Task Test()
{
Console.WriteLine($"当前主线程id={Thread.CurrentThread.ManagedThreadId.ToString("00")}");
{
Task t = NoReturnTask();
t.Wait();//主线程等待Task的完成 阻塞的【调用Task.Wait() Console.WriteLine($"Main Thread Task ManagedThreadId={Thread.CurrentThread.ManagedThreadId}"); }
Console.Read();
}

2、非阻塞
private async static Task Test()
{
Console.WriteLine($"当前主线程id={Thread.CurrentThread.ManagedThreadId.ToString("00")}");
{
Task t = NoReturnTask();
await t;//await后的代码会由线程池的线程执行 非阻塞
Console.WriteLine($"Main Thread Task ManagedThreadId={Thread.CurrentThread.ManagedThreadId}");
}
Console.Read();
}

结果与上面的一致。是因为当主线程执行Test()方法中await t后,返回Test()调用处继续往下执行。Test()方法中Task t = NoReturnTask()在await之前,所以会先执行完毕(虽然开启的是一个子线程),此时test里面的
Console.WriteLine($"Main Thread Task ManagedThreadId={Thread.CurrentThread.ManagedThreadId}");
等同于
t.ContinueWith(t =>
{Console.WriteLine($"Main Thread Task ManagedThreadId={Thread.CurrentThread.ManagedThreadId}");});