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托管线程池机制的所有性能增益。你的意见是什么?我错了吗?
如果你像这样调用这个方法:
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
}
调用者等待任务完成。