我有一个开发人员最近告诉我,你应该总是异步进行数据库调用. (使用ThreadPool.QueueUserWorkItem或IAsyncResult和委托)

他的理由是:IIS只有24个(左右)线程可以用于请求.当用户发出请求时,他们会获得其中一个线程.但是,使用异步方法时,可以访问IIS范围之外的Windows线程.他说,当你以这种方式使用异步方法时,你将初始线程释放给其他用户的请求,并将其转移到Windows线程(用于该线程的生命周期).

你怎么看?所有db调用都应该是异步的吗?

解决方法

工作线程数量有限.这些与ASP.NET有关,而不是IIS(IIS7除外,它们是相同的东西).确实,数据库调用或任何其他调用都会占用其中一个线程.对于ADO.NET调用,可以将页面编写为异步页面,在数据库操作正在进行时不使用任何线程.

除非你确实遇到问题,否则你不应该为此烦恼.

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。