只有下面方法的最后一行在方法返回之前使用了“await”,所以这是否意味着该方法基本上是同步的,应该只调用“Get()”而不使用 async 修饰符和后缀 Async?
public virtual async Task<TEntity> GetAsync(Guid id)
{
// some more code here
return await _dbSet.FindAsync(id);
}
这是否意味着该方法基本上是同步的
不,它是异步的。你可能正在想顺序的(从一件事进展到另一件事),而不是同步(阻塞当前线程)。一个await
将暂停该方法(顺序)但不会阻塞线程(异步)。欲了解更多信息,请参阅我的async intro.
没有 async 修饰符
当你could删除async
/await
关键词,我建议你不要这样做。这是因为// some more code here
可能会抛出异常。我在我的博客文章中介绍了这一点和其他注意事项eliding async and await.
和后缀异步?
不,该后缀适用于任何返回可等待的方法(例如,Task
)。所以,即使你忽略了async
and await
,它仍然返回一个任务should正在等待,所以它应该仍然有Async
suffix.
你可以这样想:Async
后缀是API接口的一部分。这async
关键字是实现细节。他们经常一起去,但并非总是在一起。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)