c# async method and return await

本文关键字:return await and method async | 更新日期: 2023-09-27 18:01:15

一个简单的问题。我找到了一些方法与这个"逻辑"answers"架构"。

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

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

c# async method and return await

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

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

那么在这个方法中返回await就没有任何意义了,你可以把它改成:

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

调用者等待任务完成。