我有一个中等大小的进程查看器,它在Windows Vista上使用大约40MB的私有内存。问题是人们总是将这个数字与Process Explorer和类似的非托管工具所使用的内存量进行比较。减少.NET应用程序中的线程数
我注意到,当我的程序也是闲着,有13级正在运行的线程:
- 一个RPC线程(RPCRT4.DLL ThreadStartRoutine!)
- 一个COM相关的线程(OLE32.DLL! CoRegisterSurrogateEx + 0x35e0)
- 两个NTDLL螺纹(NTDLL.DLL!TppWorkerThread,NTDLL.DLL!TppWaiterpThread)
- 主GUI线程
- 定时器螺纹(由CLR使用)
- 门线(CLR)
- 调试器线程(CLR)
- 4工作者线程(的Mscorwks.dll!主题:: intermediateThreadProc)
- 最后一个GDI +后台线程(Gdiplus.dll中!BackgroundThreadProc)
我该如何摆脱这些线程,释放线程堆栈内存(每个1MB)? ThreadPool.GetAvailableThreads告诉我有0个工作线程在运行,但有3个“intermediateThreadProc”线程。可以使用服务管理器API与RPC线程有什么关系? (它使RPC调用。)
13线程不健全过多给我 – 2009-04-28 01:28:12
是什么推动这个问题?与本机实施相比,您是否想要创建一个托管进程监视器,它具有相同或更少的内存占用空间? – 2009-04-28 01:42:07