Открыть диспетчер задач и посмотреть память
Обернуть каждый основной элемент выполнения в классе (здесь я использовал BLL)
затем звоните из BLL
Тогда попробуйте обернуть каждую часть верхнего уровня в оператор использования по одному
using ( TheBll bll = new TheBll)
{
bll.ProcessStuff();
}
Это освобождает большинство объектов после выполнения кода и упрощает очистку памяти.
затем снова запустите, если память перестает расти или замедляется, вы нашли кубок крови, зайдите в него глубже.
Если вы довольны результатами после того, как завершили все свои звонки на высшем уровне с помощью операторов, возможно, вам нужно будет закончить, прежде чем копать глубже. (Хотя вы должны копать, просто чтобы узнать, что на самом деле не так, когда вы не спешите)