Xaq*_*ron 3 c# asp.net clr multithreading threadpool
如果我在ASP.NET页面上创建一个新线程,则该IsThreadPoolThread属性为true.第一个问题是,它来自ASP.NET池还是CLR池?第二个问题是,如果是来自ASP.NET池那么如何从CLR创建一个线程而不使用ASP.NET池?我需要一个长期运行请求的同步解决方案(全文).
首先,ASP.NET线程池和CLR线程池之间没有区别.ASP.NET处理CLR线程池上的页面,因此您的ASP.NET页面将始终具有IsThreadPoolThread == true.
我很好奇你是如何创建你的线程的.您使用的是System.Threading.Thread构造函数,还是使用ThreadPool.QueueUserWorkItem?如果您使用的是ThreadPool.QueueUserWorkItem,那么您获得的线程来自常规的.net线程池.
最后,正如我之前发布的那样,从ASP.NET中尝试长时间运行的任务总是一个坏主意.我的一般建议是使用后台Windows服务来处理这些请求,因为ASP.NET可以随时终止后台线程.更多详细信息,如果您必须在IIS中执行此操作:http://csharpfeeds.com/post/5415/Dont_use_the_ThreadPool_in_ASP.NET.aspx
| 归档时间: |
|
| 查看次数: |
4007 次 |
| 最近记录: |