繁体   English   中英

c#异步方法并返回await

[英]c# async method and return await

一个简单的问题。 我找到了一些具有这种“逻辑”和“架构”的方法。

public async Task<T> 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<T> FindAsync(params object[] keys)
{
    return this.context.FindAsync(keys); // Start and return the task
}

然后调用者等待任务完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM