ASP.NET异步方法问题

Mic*_*cah 5 database asp.net asynchronous

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

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

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

Joh*_*ers 2

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

除非您确实遇到了问题,否则您不应该为此烦恼。