所以我有很长的存储过程。大约需要5-8分钟才能执行。假设我创建了一个sqlCommand对象并通过我的asp.net应用程序执行它,线程将等待命令执行完成或命令超时时间。
如果我使用另一个线程( thread_2 )来完成此任务,则thread_2将等待。我想避免等待,因为命令需要4到7分钟才能执行。
有什么办法吗?
编辑:
如果我错了,请纠正我,但我相信使用异步版本也会使用thread_2。异步方法只是减少线程代码的包装器。我的信仰
我想要一些事件驱动机制,以便在命令执行完成之前不会使用线程。
但现在我觉得我要求太多了..。是我吗?
发布于 2013-03-16 06:52:41
要使SQL调用是异步的,所有命令都有异步版本,即SqlCommand.ExecuteNonQueryAsync。
第二部分是在执行SQL命令时,使页面呈现异步不使用线程。MVC和WebForms都允许您这样做(MVC更容易)。请注意,如果执行与您所说的一样长,那么您可能希望在页面上实现某种轮询机制,而不是等待请求竞争来呈现结果.
使用一些代码,您可以将其包装在async
-friendly代码( 使用异步/等待 )中,以便在异步MVC操作中使用。
如果您必须坚持使用WebForms/普通ASP.Net,那么您需要做更多的工作来实现异步页面,但这仍然是可能的。
https://stackoverflow.com/questions/15446426
复制相似问题