找回密码
 立即注册

QQ登录

只需一步,快速开始

gonna2022

注册会员

6

主题

26

帖子

84

积分

注册会员

积分
84
gonna2022
注册会员   /  发表于:2023-11-9 11:03  /   查看:1376  /  回复:5
10金币
ActiveReports.Aspnetcore 16
项目比较特殊,需要动态生成报表,使用的是UseCustomStore中生成Report,请问如何释放report对象呢?或者有其他的方法实现功能?



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

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

             });

最佳答案

查看完整内容

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

5 个回复

倒序浏览
最佳答案
最佳答案
Felix.LiWyn认证
超级版主   /  发表于:2023-11-9 11:04:00
来自 2#
问题描述:

自定义报表资源释放

问题解决:
您好,这个写法没有问题,这个report对象会被我们返回给前端。这个资源我们内部会在请求结束后将他指向为空,然后在.Net的GC工作时,会将资源释放。
如果您想主动释放资源,您可以在合适的时候执行:
  1. GC.Collect();
  2.           GC.WaitForPendingFinalizers();
复制代码
他也会让GC工作,然后做资源回收
回复 使用道具 举报
gonna2022
注册会员   /  发表于:2023-11-9 17:07:09
3#
本帖最后由 gonna2022 于 2023-11-9 17:08 编辑
Felix.Li 发表于 2023-11-9 15:02
问题描述:

自定义报表资源释放

感谢回复
指向为空意思是调用dispose吗?
有这个疑问主要是在分析内存占用时看到很多报表的字体缓存字典,不知道是不是跟资源释放有关系
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-11-9 18:47:15
4#
这个应该不用您调用,这个对象在不用时,我们内部会释放,当然,本身报表也是会有缓存的。比如报表生成的一些资源,类似报表画的图表啊,会有一些svg的这些资源,都会被暂时缓存起来,不会每次请求都重新画,这些释放报表内部会做,而我上面说的,其实是主动执行GC。GC执行的时候,自然会把那些我们置空,也就是dispose后,但是没有释放的回收掉
回复 使用道具 举报
gonna2022
注册会员   /  发表于:2023-11-10 09:40:12
5#
Felix.Li 发表于 2023-11-9 18:47
这个应该不用您调用,这个对象在不用时,我们内部会释放,当然,本身报表也是会有缓存的。比如报表生成的一 ...

明白了
非常感谢讲解
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2023-11-10 10:27:24
6#
gonna2022 发表于 2023-11-10 09:40
明白了
非常感谢讲解

不客气,那本帖就先结贴啦,有问题您另开新帖哦`
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部