c#异步方法并返回await

一个简单的问题。 我发现了一些使用这种“逻辑”和“架构”的方法。

public async Task FindAsync(params object[] keys) { return await this.context.FindAsync(keys); } 

等待一条指令。 由于该方法是异步的,因此必须执行此操作(否则会发生编译器错误)。 恕我直言,我找不到你应该使用这种模式的原因,因为如果方法是异步的,你可能想要并行执行不同的任务。 如果将执行与await关键字同步,则使方法接近同步,并且您将失去.net的托管线程池机制的所有性能增益。 你有什么意见? 我错了?

如果你这样调用这个方法:

 await FindAsync(); // this method waits for the task to complete 

然后在此方法中返回await没有任何意义,您可以将其更改为:

 public Task FindAsync(params object[] keys) { return this.context.FindAsync(keys); // Start and return the task } 

然后呼叫者等待任务完成。