带有取消令牌的ToListAsync需要大约7秒才能取消?

时间:2014-10-17 21:24:22

标签: c# .net entity-framework asynchronous task-parallel-library

enter image description here

上图显示了调用ToListAsync(cancellationToken)时,令牌设置为取消状态,以及何时最终抛出取消异常(6.7秒后)。

这是正常行为吗?我需要它更快。 MSDN Documentation对此事表示极少。这是一个长时间运行的查询,但是this answer表明ToListAsyc(cancellationToken)应该退出查询没问题。幕后实际发生了什么?

除非有要求,否则没有任何代码可以展示,它正在运作......这只是花了很长时间。

1 个答案:

答案 0 :(得分:3)

这是QueryableExtensions.ToListAsync()吗?或类似的东西?

如果是这样,那么它将全部依赖于数据源。如果所有内容都在内存中,并且链中没有任何预测或其他查询,那么我期望更快的响应时间。但是如果查询是针对某些外部资源进行的,或者嵌入了一些耗时的处理,那么操作就不能安全中断,直到达到一个好位置,这可能需要一段时间