【发布时间】:2011-06-18 15:12:04
【问题描述】:
MSDN:
public IntPtr MaxWorkingSet { get; set; }
获取或设置允许的最大值 相关联的工作集大小 过程。属性值:最大值 允许的工作集大小 进程的内存,以字节为单位。
所以,据我所知,我可以限制进程可以使用的内存量。我试过这个,但没有运气..
一些代码:
public class A
{
public void Do()
{
List<string> guids = new List<string>();
do
{
guids.Add(Guid.NewGuid().ToString());
Thread.Sleep(5);
} while (true);
}
}
public static class App
{
public static void Main()
{
Process.GetCurrentProcess().MaxWorkingSet = new IntPtr(2097152);
try
{
new A().Do();
}
catch (Exception e)
{
}
}
}
我预计在达到 2mb 的限制后会出现 OutOfMemory 异常,但没有任何反应。如果我打开任务管理器,我可以看到我的应用程序使用的内存量不断增长,没有任何限制。
我做错了什么? 提前致谢
【问题讨论】:
标签: c# .net memory-management