首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IHttpAsyncHandler内部的同步数据库读取

IHttpAsyncHandler内部的同步数据库读取
EN

Stack Overflow用户
提问于 2009-05-07 01:33:10
回答 2查看 420关注 0票数 0

在asp.net上,如果我使用delegate.BeginInvoke在IHttpAsyncHandler中调用同步数据库查询,它是否仍会在读取数据库时释放asp.net工作线程?

例如,这篇文章:http://madskristensen.net/post/How-to-use-the-IHttpAsyncHandler-in-ASPNET.aspx

如果我将一个同步数据库调用放在ServeContent中,请求仍然会异步发生吗?

EN

回答 2

Stack Overflow用户

发布于 2009-05-07 03:22:07

不是的。这是一篇误导性的文章,暗示它确实是这样的。为了获得IHttpAsyncHandler的好处,您必须调用异步响应的东西。例如,web服务、异步数据库调用(如SqlCommand.BeginExecuteReader)、唤醒休眠线程中的某些内容等。

TransmitFile (在示例文章中使用)不是异步的,而是同步的。它使用一个工作线程,就像任何其他同步调用一样。

票数 1
EN

Stack Overflow用户

发布于 2009-05-07 11:35:12

查看BeginExecuteReader的mysql实现,它只创建了一个委托,并在AsyncExecuteWrapper方法上调用BeginInvoke,该方法只调用ExecuteReader。这在我看来是不正确的,因为它只是一个委托内部的同步调用。所以,即使我在IHttpAsyncHandler中使用mysql连接器BeginExecuteReader,我也不能工作。会吗?

谢谢。

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

https://stackoverflow.com/questions/832525

复制
相关文章

相似问题

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