当我的asp.net应用程序启动时,我在一个进程中有大约40个关联的线程。这是正常的吗?对于noob问题抱歉。运行(状态)的实际线程取决于我的机器的核心。例如,在4核心的PC上运行,即时获得1-4个正在运行的线程(并行),并且一个进程中的线程总数约为38-42。当在24核心pc上运行应用程序时,im仍然会绕过38-42个线程。这些进程中的线程数是否正常?
我为获得运行的线程数代码:
((IEnumerable)Process.GetCurrentProcess().Threads)
.OfType<System.Diagnostics.ProcessThread>()
.Where(t => t.ThreadState == System.Diagnostics.ThreadState.Running)
.Count()
代码用于获取的线程总数:
Process.GetCurrentProcess().Threads.Count
有人可以解释这对一个菜鸟像我..
在此先感谢。
此外,有时我得到在24芯机的并行任务的峰值期间的进程相关联大约90个线程。但是经过长时间的并行处理完成后,线程数将回到42左右。 – hisoka21 2013-02-11 10:09:58
您的CurrentProcess是IIS。而且,对于IIS来说,至少有少数线程是正常的。 – 2013-02-11 10:14:21
嗨Henk!感谢您及时的回复。你的意思是我使用上面的代码得到的线程总数不是仅由我的应用程序生成的? – hisoka21 2013-02-11 10:21:03