Can I safely spawn threads in ASP.NET MVC?
我有一个计划任务,需要浏览到某个页面才能启动,但我的网络主机不允许我使用Windows计划程序。
该任务执行的一项工作是从许多其他网站获取一些数据,由于Web请求的速度可能很慢,因此我将任务设置为使用线程。
通过mvc操作运行此任务似乎会使整个Web服务器变得古怪,从而使其拒绝加载更多页面。
使用来自Web应用程序的线程是否不好?我有办法安全地做到这一点吗?有哪些线程限制?我真的只需要知道更多信息?
编辑:子问题
如果我使用线程池中的线程(ASP.NET运行时使用该线程(感谢Anton),我可以限制它可以使用多少个线程吗?ASP.NET线程池的大小限制是多少?
有一个单独的站点这样做会更好吗?也许是一个包含单独的ASP.NET应用程序的虚拟文件夹?那会阻止我限制线程池,对吗?
服务传入请求时,ASP.NET运行时从容量有限的.NET
解决此问题的方法将产生通常的
如果这些线程主动引起问题,我将感到惊讶,只要这些线程不尝试回覆请求/响应(现在可能消失了)。您看到什么症状?您可以定义"古怪"吗?
我通常使用线程进行日志记录等,没有问题。
为了最大程度地减少影响,您可以使用生产者/消费模式,因此只有一个(或几个)工作线程,但可以服务许多ASP.NET MVC请求/响应线程。
我认为这取决于完成方式。在ASP.NET下进行线程处理时,我并不十分称职,但我认为您最终可能会使用一些本来用于处理来自客户端的请求的线程。
这是有关ASP.NET中多线程的教程,可能会帮助您进行一些转发。