MSDN:
public IntPtr MaxWorkingSet { get; set; }
Gets or sets the maximum allowable
working set size for the associated
process. Property Value: The maximum
working set size that is allowed in
memory for the process, in bytes.
So, as far as I understand, I can limit amount of memory that can be used by a process. I've tried this, but with no luck..
Some code:
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)
{
}
}
}
I'm expecting OutOfMemory exception after the limit of 2mb is reached, but nothing happens.. If I open Task Manager I can see that the amount of memory my application uses is growing continiously without any limits.
What am I doing wrong?
Thanks in advance
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…