Я создаю поток STA, поскольку я в основном использую компонент пользовательского интерфейса в библиотеке, которая обладает функциональностью, которую я хочу, фактически не имея никакого пользовательского интерфейса (экспорт таблиц в Excel).
System.Threading.Thread thread = new System.Threading.Thread(() =>
{
_reportRunner.RunReport(report);
});
thread.SetApartmentState(System.Threading.ApartmentState.STA);
thread.Start();
thread.Join();
Выше где находитсяслучается магия, она работает нормально, однако не распределяет объекты должным образом, и я получаю огромные утечки памяти, так как некоторые из этих таблиц данных очень большие.
Я могу найти различную информацию о потоках STA и утечках памяти, но не так много при их устранении. Есть ли способ освободить память, я пытался принудительно заставить сборщик мусора, но а) это не работаети б) я действительно не хочу этого делать.
Мое приложение фактически является консольным приложением, без видимого WPF.
Я использовал профилировщик памяти dotMemory, чтобы понять это, мое приложениеиспользует 8 ГБ памяти, которая должна быть освобождена после создания и экспорта отчета, но это не так.
Я использую Dev Express WPF pivotgridcontrol, который имеет функцию экспорта