线程IIS不会启动C#
在讨论这个问题之前,我想说,我已经阅读了IIS7、7、7.5的线程建模,所以我知道如何处理线程 我的应用程序在收到请求时启动一个线程 我们可以假设线程是cron作业线程IIS不会启动C#,c#,multithreading,iis,request,threadpool,C#,Multithreading,Iis,Request,Threadpool,在讨论这个问题之前,我想说,我已经阅读了IIS7、7、7.5的线程建模,所以我知道如何处理线程 我的应用程序在收到请求时启动一个线程 我们可以假设线程是cron作业 GET请求进入,让我们说/处理 在/Handle的范围内,我从该操作启动一个线程,即线程a 我没有长时间轮询GET请求,因此它返回到 马上使用。因此,处理GET的线程被返回到池中 然后,我等待线程A完成其他操作 据我所知,没有线程在运行。两条线都是 处理GET和线程A已退出 我连续几次提出同样的要求。我总是等待两个线程退出。 一段时
Thread t=new Thread()
,这是否会从处理GET或CLR的池中分配一个线程?
我用的是IIS7
我知道我退出每个线程,我在线程a上调用一个连接,它从不阻塞,在这一点上我不担心可伸缩性,所以我总是让一个用户按顺序访问服务器 因此,要回答您的问题“为用户应用程序创建应用程序线程的正确方法是什么?”(即ASP.NET应用程序)-您有很多选择:
- 在ASP.NET线程上运行,无任何线程-ASP.NET仍将处理多个请求
- 对长时间运行的操作使用异步调用(请参阅)
- 使用
- 向其他服务器发送消息(例如,使用WCF服务),以便长时间运行的处理在Web服务器之外进行李>
这真是一种奇怪的行为,也许IIS知道你做错了;) 据我所知,使用
new Thread()
直接创建线程会创建一个直接线程,而不会触及ThreadPool
?你为什么要等待线程?你能展示一下你是如何创建线程的吗?您是否从线程池中获取线程?“4.然后我等待线程a”-如果处理请求的线程已返回到线程池,则哪个线程等待线程?好的,谢谢。我必须使用异步,我的ASP.NET线程必须立即返回给用户,这样我们就不会阻止用户。我也不能在单独的服务器上运行它,因为我使用Pinvoke。我创建的线程调用C语言中的东西,它会返回结果。谢谢,AppEngine中也有同样的概念。这是我第一次来到微软世界,所以我忘了说我正在使用MVC。因此,我需要使用异步控制器。我想我没有把我需要的东西说清楚。我不需要将任何内容返回给用户/客户端。我只想做一个背景线。AsyncTask/控制器是为长时间运行的线程实现的,用户最终需要在浏览器上看到某种结果。我所需要的就是能够运行后台线程?不要等到他们完成。