gonna2022 发表于 2023-11-9 11:03:59

ActiveReports.Aspnetcore 16 使用UseCustomStore后资源释放问题

ActiveReports.Aspnetcore 16
项目比较特殊,需要动态生成报表,使用的是UseCustomStore中生成Report,请问如何释放report对象呢?或者有其他的方法实现功能?



            app.UseReporting(settings =>
            {
                settings.UseCustomStore(str =>
                {

                  var report = new PageReport();
                  ............
                  return report;
                }

             });

Felix.Li 发表于 2023-11-9 11:04:00

问题描述:

自定义报表资源释放

问题解决:
您好,这个写法没有问题,这个report对象会被我们返回给前端。这个资源我们内部会在请求结束后将他指向为空,然后在.Net的GC工作时,会将资源释放。
如果您想主动释放资源,您可以在合适的时候执行:
GC.Collect();
          GC.WaitForPendingFinalizers();他也会让GC工作,然后做资源回收

gonna2022 发表于 2023-11-9 17:07:09

本帖最后由 gonna2022 于 2023-11-9 17:08 编辑

Felix.Li 发表于 2023-11-9 15:02
问题描述:

自定义报表资源释放

感谢回复
指向为空意思是调用dispose吗?
有这个疑问主要是在分析内存占用时看到很多报表的字体缓存字典,不知道是不是跟资源释放有关系

Felix.Li 发表于 2023-11-9 18:47:15

这个应该不用您调用,这个对象在不用时,我们内部会释放,当然,本身报表也是会有缓存的。比如报表生成的一些资源,类似报表画的图表啊,会有一些svg的这些资源,都会被暂时缓存起来,不会每次请求都重新画,这些释放报表内部会做,而我上面说的,其实是主动执行GC。GC执行的时候,自然会把那些我们置空,也就是dispose后,但是没有释放的回收掉

gonna2022 发表于 2023-11-10 09:40:12

Felix.Li 发表于 2023-11-9 18:47
这个应该不用您调用,这个对象在不用时,我们内部会释放,当然,本身报表也是会有缓存的。比如报表生成的一 ...

明白了
非常感谢讲解

Bella.Yuan 发表于 2023-11-10 10:27:24

gonna2022 发表于 2023-11-10 09:40
明白了
非常感谢讲解

不客气,那本帖就先结贴啦,有问题您另开新帖哦`
页: [1]
查看完整版本: ActiveReports.Aspnetcore 16 使用UseCustomStore后资源释放问题