我有一个在C#中使用线程的程序。有没有办法以编程的方式知道应用程序的内存使用情况?我想限制线程的产生,比如说10MB的内存,我该怎么做呢?
发布于 2009-04-16 12:42:57
如果您想要整个正在运行的进程的内存,而不是每个线程的内存,那么:
// get the current process
Process currentProcess = System.Diagnostics.Process.GetCurrentProcess();
// get the physical mem usage
long totalBytesOfMemoryUsed = currentProcess.WorkingSet64;
除了WorkingSet64
之外,还有一大堆其他的进程内存属性,请在以下链接中查看与内存相关的属性,以获得最适合的属性
http://msdn.microsoft.com/en-us/library/system.diagnostics.process_properties.aspx
发布于 2009-04-16 12:47:56
虽然我同意你已经收到的关于你的问题的评论,但如果你真的决定采取这种行动,使用System.Environment.WorkingSet
可能是一个实际的答案?
发布于 2009-04-16 12:42:58
我同意威尔和史蒂夫,除非你真的迫不得已,否则不要这么做。。。这就是说。。。
如果您确实需要这样做,您可以使用.Net Hosting APIs,它们就在那里,这样像SQL Server这样的应用程序就可以在应用程序中托管.net框架。
它让你可以控制内存管理等等,我读过这篇文章,但从来没有用过API,当我无聊的时候,它们在我的待办事项列表上,当我的其他“有趣”的项目在那一周感觉不到乐趣的时候,它们就在我的待办事项清单上。)
希望这能有所帮助。
https://stackoverflow.com/questions/755919
复制相似问题