gpt4 book ai didi

c# - 如何从 CLR 线程池而不是 ASP.NET 池在 ASP.NET 页面中创建线程?

转载 作者:行者123 更新时间:2023-11-30 13:20:49 26 4
gpt4 key购买 nike

如果我在 ASP.NET 页面上创建一个新线程,则 IsThreadPoolThread 属性为 true。第一个问题是,它是来自 ASP.NET 池还是 CLR 池?第二个问题是,如果它来自 ASP.NET 池,那么如何从 CLR 创建线程而不使用 ASP.NET 池?我需要针对长时间运行的请求 ( full story ) 的同步解决方案。

最佳答案

首先,ASP.NET 线程池和 CLR 线程池之间没有区别。 ASP.NET 在 CLR 线程池上处理页面,因此您的 ASP.NET 页面将始终具有 IsThreadPoolThread == true。

我很好奇您是如何创建线程的。您是在使用 System.Threading.Thread 构造函数,还是在使用 ThreadPool.QueueUserWorkItem?如果您使用的是 ThreadPool.QueueUserWorkItem,那么您获得的线程来自常规 .net 线程池。

最后,如我所愿posted before , 从 ASP.NET 中尝试长时间运行的任务总是一个坏主意。我的一般建议是使用后台 Windows 服务来处理这些请求,因为 ASP.NET 可能会随时终止您的后台线程。更多详细信息,如果您必须在 IIS 中执行此操作:http://csharpfeeds.com/post/5415/Dont_use_the_ThreadPool_in_ASP.NET.aspx

关于c# - 如何从 CLR 线程池而不是 ASP.NET 池在 ASP.NET 页面中创建线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4007863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com