TaskManager не следует использовать для измерения объема памяти приложения .NET.
Когда приложение .NET запускается, оно запрашивает у ОС кусок памяти, который затем сегментируется, чтобы стать управляемой кучей, стеком и кучей больших объектов. Именно этот общий объем памяти, о котором сообщает TaskManager, может или не может быть полностью использован .NET. После того как приложению .NET будет выделен кусок памяти, оно не освободит его до тех пор, пока ОС не попросит об этом, что произойдет только с ОС, которая определит потребность в дополнительных ресурсах памяти.
Если вы хотите измерить распределение памяти, вам нужно взглянуть на различные счетчики монитора производительности (PerfMon).
Вы можете использовать код взаимодействия для вызова Win32 API, чтобы урезать размер вашего рабочего набора, но в следующий раз, когда ваше приложение запросит память у ОС, рабочий набор вернется обратно и произойдет падение производительности, пока ОС выделяет и передает дополнительной памяти, и среда выполнения .NET «настраивает» ее.