首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在执行sql命令时使线程保持空闲

如何在执行sql命令时使线程保持空闲
EN

Stack Overflow用户
提问于 2013-03-16 06:48:53
回答 1查看 1K关注 0票数 0

所以我有很长的存储过程。大约需要5-8分钟才能执行。假设我创建了一个sqlCommand对象并通过我的asp.net应用程序执行它,线程将等待命令执行完成或命令超时时间。

如果我使用另一个线程( thread_2 )来完成此任务,则thread_2将等待。我想避免等待,因为命令需要4到7分钟才能执行。

有什么办法吗?

编辑:

如果我错了,请纠正我,但我相信使用异步版本也会使用thread_2。异步方法只是减少线程代码的包装器。我的信仰

我想要一些事件驱动机制,以便在命令执行完成之前不会使用线程。

但现在我觉得我要求太多了..。是我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-16 06:52:41

要使SQL调用是异步的,所有命令都有异步版本,即SqlCommand.ExecuteNonQueryAsync

第二部分是在执行SQL命令时,使页面呈现异步不使用线程。MVC和WebForms都允许您这样做(MVC更容易)。请注意,如果执行与您所说的一样长,那么您可能希望在页面上实现某种轮询机制,而不是等待请求竞争来呈现结果.

使用一些代码,您可以将其包装在async-friendly代码( 使用异步/等待 )中,以便在异步MVC操作中使用。

如果您必须坚持使用WebForms/普通ASP.Net,那么您需要做更多的工作来实现异步页面,但这仍然是可能的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15446426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档