async datareader和执行顺序

时间:2013-12-30 13:05:25

标签: c# .net asynchronous async-await

我正在使用Web API。我知道我必须使用完整的异步堆栈来获得它的好处。这意味着API控制器是对我的服务的异步调用,我的服务对我的dataprovider进行异步调用,例如async datareader。

我想当我开始在控制器中使用async时,我也应该在数据库连接上执行OpenAsync()并仅使用异步非查询/查询调用。

  1. 这是真的吗?

  2. 当我有3个NonQueries(A)在表1,2,3上做什么。完成此任务后,必须按照表1,2,3中的4个NonQueries(B)执行操作。

  3. 我是否可以使用ExecuteNonQueryAsync方法进行A或者我是否必须担心B的执行速度比A快,这可能导致我的情况不一致?

2 个答案:

答案 0 :(得分:3)

  1. 您没有 仅使用异步方法,但我建议您在有异步选项时进行。但要确保这些操作真的是异步。
  2. 如果您等待所有异步调用,则订单将与您不使用异步相同。 并行和异步之间存在差异。异步流不一定是并行流。

答案 1 :(得分:1)

1)错误,不一定 2)不适用。

通过将您的操作标记为异步,将为新请求释放apppool线程,并且当前请求由后台线程处理。