在IIS应用程序(asp .net)上使用tasks/ ThreadPool



我们在iis 7上有一个asp.net应用程序。我们需要创建一个异步进程来做计算(使用web服务),而不是让客户端等待,我们使用ThreadPool来做这件事(我更喜欢任务,但我是一个服务器端家伙)。我的问题是:
1. 如果在iis上使用线程池,它是从客户端还是从操作系统中获取线程?
2. 你会用任务还是线程池(我知道任务给你更多,但UI的家伙喜欢池)。坦克

NET主机为每个进程提供一个线程池。因此,如果您使用的是ThreadPool,那么它将从从服务器请求中提取的相同池中获取。

也就是说,如果你启动的后台操作是独立于单个客户端请求的,那么你应该使用Win32服务、web服务、消息队列系统或类似的东西。在ASP中运行"后台"线程。. NET违背了IIS的整个体系结构;如果你保持HTTP的无状态特性,那么适当地扩展和做其他it工作(例如,重新启动应用程序池)会容易得多。

任务,仍然占用线程池中的线程。

到目前为止,我理解你的问题,第三方服务执行cpu繁重的计算,你需要异步等待它完成。

在这种情况下,如果您想延迟页面呈现,直到计算完成,异步页面将会有所帮助。此方法将在等待期间将处理线程返回到线程池。

您是否可以提供更多所需解决方案的细节,以获得更准确的答案?

相关内容

  • 没有找到相关文章

最新更新