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)
{
}
}
}
Я ожидаю исключения OutOfMemory после достижения предела 2mb, но ничего не происходит. Если я открою диспетчер задач, я увижу, что объем памяти, который использует мое приложение, постоянно растет без каких-либо ограничений.
Что я делаю неправильно? Спасибо заранее