找回密码
 立即注册

QQ登录

只需一步,快速开始

focuschina

初级会员

15

主题

34

帖子

353

积分

初级会员

积分
353

[已处理] 内存泄露

focuschina
初级会员   /  发表于:2017-1-24 15:39  /   查看:8414  /  回复:17
你好,wpf.viewer引用了**的view,导致**的view不释放,内存泄露,请问如何断开引用关系?谢谢。



代码如下:




初始化:


关闭时释放


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

17 个回复

倒序浏览
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-1-24 16:18:26
沙发
从图看,应该是Viewer调用方法致内存泄漏。建议您正常释放Viewer对象或是报表对象
正常释放代码:
  1. rpt.Document.Dispose();
  2. rpt.Dispose();
  3. rpt=null;
复制代码


回复 使用道具 举报
focuschina
初级会员   /  发表于:2017-1-24 16:38:22
板凳
加了
_currentPageReport.Document.Dispose()
还是没释放,每打开一次报表就增加一个instance,distance from gc root 为17。

我们这边的类型定义如下:
private PageReport _currentPageReport;
private Viewer _reportViewer;

你代码里的rpt是PageReport类型吧?
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-1-24 17:46:15
地板
本帖最后由 Lenka.Guo 于 2017-1-24 17:50 编辑

是的,这个应该还是报表对象没有正确释放导致的,建议将这段代码发到报表对象生成之后的位置下
回复 使用道具 举报
focuschina
初级会员   /  发表于:2017-1-25 14:56:43
5#
你们的ReportViewer.Sidebar有泄露
查了好几天了,原来以为是我们自己的代码有问题,没想到竟然是它
我们想在关闭的时候把Sidebar隐藏,Sidebar只有ToggleVisibility方法,请问怎么判断是否打开?
回复 使用道具 举报
focuschina
初级会员   /  发表于:2017-1-25 15:06:48
6#
搞错了,隐藏也不能解决问题
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-1-25 16:08:00
7#
本帖最后由 Lenka.Guo 于 2017-1-25 16:33 编辑

您使用的是AR哪个版本?之前遇到内存溢出问题,是因为客户未正常释放报表对象。
在添加正确的内存释放代码后,能够有效内存溢出问题,所以希望您在合适的位置上添加以下代码,附件是之前测试程序:
  1.   reportsViewer.Dispose();
  2.             pageReport.Document.Dispose();
  3.             pageReport.Dispose();            
  4.             pageReport = null;
  5.             pageDocument = null;
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
focuschina
初级会员   /  发表于:2017-1-25 17:16:08
8#
我们用的也是ar10,也做过释放。
我改了一下自带的例子 wpf viewer, 启动后的第一个窗口A中放一个按钮,点按钮打开另一个含有viewer的窗口B。
只要是打开过sidebar就会泄露,窗口B就没法释放,不打开sidebar就不泄露。
代码在内网,节后发给你们再帮看看吧,
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2017-1-25 17:21:06
9#
focuschina 发表于 2017-1-25 17:16
我们用的也是ar10,也做过释放。
我改了一下自带的例子 wpf viewer, 启动后的第一个窗口A中放一个按钮, ...

oK
回复 使用道具 举报
focuschina
初级会员   /  发表于:2017-1-25 17:24:31
10#
附件的例子看了一下,报表里没数据吧,没数据能正常释放,有数据后就会泄露。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部