接口是IQueryable和IQueryable<T>异步吗?
我的意思是,提出以下代码:
void Method()
{
var customers = CustomerReposity.ToQueryable(); //The execution of query starts here.
DoSomething();
foreach (var customer in customers) // The foreach await to finish
customer.DoSomething();
}我的建议对吗?如果不是,实现异步行为的正确形式是什么?
也许..。
async void Method()
{
var customers = CustomerReposity.ToQueryable().ToListAsync(); //The execution of query starts here.
DoSomething();
foreach (var customer in await customers) // The foreach await to finish
customer.DoSomething();
}这是个好主意吗
发布于 2018-11-21 17:53:42
不,IQueryable和IQueryable<T>不是异步的,它们也不需要异步。这两个接口提供了从源提取某些数据的方法,但要由源提供异步支持。如果源将返回内存中的所有数据,则异步使用它是没有意义的。但是,如果源是从网络“流”来的,那么异步枚举它可能是有意义的。
https://stackoverflow.com/questions/53417748
复制相似问题