我注意到 Microsoft.EntityFrameworkCore Linq 扩展方法不包含 ToHashSet异步版本,我假设实现对象的正确且安全的方法是 HashSet,因为它可以防止重复,我是否错过了什么?如果它如此重要为什么没有异步版本?
假设FirstOrDefaultAsync在客户端(Web 服务器)端运行,而Where在主机(SQL 服务器)端运行,因此使用Where比使用FirstOrDefaultAsync好得多,是否正确?
如果答案是肯定的,那么我如何利用异步的力量,因为我无法在Where之后调用FirstOrDefaultAsync?
在这种情况下如何await才能最大程度地使用和优化我的资源?
在阅读了大量关于 await/async 的文章后,我仍然对这个主题有一些误解。请为我的问题提供简短的答案(是/否)和详细的答案,以便我更好地理解。
假设我们有以下方法:
public async Task UnresultTaskMethod()
{
await AsyncMethod1();
await AsyncMethod2();
}
Run Code Online (Sandbox Code Playgroud)
问题:
Task.WaitAll(tasks); Task.WhenAll(tasks);最后以便确保在所有任务结束之前不会继续执行时,这对我来说是主要的困惑因素,如果可以等待,为什么要以这种方式等待任务他们通过关键字等待?c# extension-methods multithreading task-parallel-library async-await