STA线程C#中的内存泄漏

时间:2018-10-10 08:50:32

标签: c# memory-leaks sta

我正在创建STA线程,因为我基本上是在库中使用具有所需功能的UI组件,而实际上没有任何UI(将表导出到Excel)。

System.Threading.Thread thread = new System.Threading.Thread(() =>
            {
                _reportRunner.RunReport(report);
            });

thread.SetApartmentState(System.Threading.ApartmentState.STA);
thread.Start();
thread.Join();

上面是发生魔术的地方,它运行良好,但是不能正确处理对象,并且由于其中一些数据表非常大,我遇到了巨大的内存泄漏。

我可以找到有关STA线程和内存泄漏的各种信息,但解决它们的方法却不多,总之有释放内存的方法,我尝试过手动强制垃圾回收器,但a)无效,b)我真的不想这么做。

我的应用程序实际上是一个控制台应用程序,看不到WPF。

我已经使用dotMemory内存探查器来了解这一点,我的应用程序正在使用8gb的内存,该内存打算在生成和导出报告后立即释放,但不会。

我正在使用具有导出功能的Dev Express WPFivotgridcontrol

0 个答案:

没有答案