Утечка памяти в потоке STA c # - PullRequest
0 голосов
/ 10 октября 2018

Я создаю поток 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, который имеет функцию экспорта

...