找回密码
 立即注册

QQ登录

只需一步,快速开始

menghuanyunxia

高级会员

111

主题

396

帖子

1075

积分

高级会员

积分
1075

活字格认证微信认证勋章元老葡萄

menghuanyunxia
高级会员   /  发表于:2015-6-16 09:47  /   查看:10168  /  回复:10
下图是我在进行程序性能分析时,发现有个给单元格赋值的地方在不停的触发SheetDataModel.OnChanged(int, int)事件

这里对程序的性能影响很大,我想知道这个事件是否可以关闭,或者可以让我控制何时触发此事件?

本帖子中包含更多资源

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

x

10 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-6-16 12:11:00
沙发
您好,
目前spread可以选择部分的事件进行挂起操作,
可以使用以下代码实现:
  1.             fpSpread1.ActiveSheet.SuspendAutoUpdateChartData();
  2.             fpSpread1.ActiveSheet.SuspendFormulaParsing();
  3.             fpSpread1.ActiveSheet.SetValue(1, 1, "Asd");
  4.             fpSpread1.ActiveSheet.ResumeFormulaParsing();
  5.             fpSpread1.ActiveSheet.ResumeAutoUpdateChartData();
复制代码

另外,您使用的哪种性能测试工具?
从图片中,发现做了很多赋值的操作,能否描述一下?
回复 使用道具 举报
menghuanyunxia
高级会员   /  发表于:2015-6-16 14:24:00
板凳
回复 2楼frank.zhang的帖子

性能测试工具用的是dotTrace Performance.
是进行了很多次赋值,有两个SheetA,SheetB,SheetB上有很多公式引用了SheetA的单元格,赋值给了SheetA上的很多单元格。
回复 使用道具 举报
menghuanyunxia
高级会员   /  发表于:2015-6-16 15:22:00
地板
回复 2楼frank.zhang的帖子

按照你提供的方法,速度并没有提高。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-6-16 16:08:00
5#
您好,
代码中使用的ActiveSheet,您可以使用SheetA和SheetB,进行尝试。希望能帮助到您。

如果性能没有改善的话,您是否提供一个能够重现这个问题的例子程序,以方便我们重现问题。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-6-23 16:56:00
6#
您好,
距离这个问题的最后回复已经过去了一段时间,不知道这个问题您是否已经解决?
如果没有解决,欢迎跟贴接续讨论,如果已经解决请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
menghuanyunxia
高级会员   /  发表于:2015-6-24 14:27:00
7#
回复 6楼frank.zhang的帖子

没有解决,是按照你提供的方式实现的。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-6-24 15:50:00
8#
您好,
是否能够提共一个能够重现问题的例子程序,我们这边可以帮您看下,是否有改进的方法。
回复 使用道具 举报
menghuanyunxia
高级会员   /  发表于:2015-6-25 10:58:00
9#
回复 8楼frank.zhang的帖子

我们这边的SheetA和SheetB上填充了很多单元格,大概上千个,并且填充两个sheet很多次(根据我们的数据量大小确定次数),也设置了EnableCalculation=false, 调用SuspendXXXX()挂起刷新。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-6-25 14:07:00
10#
您好,
您的这个问题,我会尽快提交给产品组调查,如果有进一步的进展,我会在第一时间通知您。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部