menghuanyunxia 发表于 2015-6-16 09:47:00

【WinForms】设置单元格值时不停触发SheetDataModel事件

下图是我在进行程序性能分析时,发现有个给单元格赋值的地方在不停的触发SheetDataModel.OnChanged(int, int)事件

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

frank.zhang 发表于 2015-6-16 12:11:00

您好,
目前spread可以选择部分的事件进行挂起操作,
可以使用以下代码实现:
            fpSpread1.ActiveSheet.SuspendAutoUpdateChartData();
            fpSpread1.ActiveSheet.SuspendFormulaParsing();

            fpSpread1.ActiveSheet.SetValue(1, 1, "Asd");

            fpSpread1.ActiveSheet.ResumeFormulaParsing();
            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

您好,
代码中使用的ActiveSheet,您可以使用SheetA和SheetB,进行尝试。希望能帮助到您。

如果性能没有改善的话,您是否提供一个能够重现这个问题的例子程序,以方便我们重现问题。

frank.zhang 发表于 2015-6-23 16:56:00

您好,
距离这个问题的最后回复已经过去了一段时间,不知道这个问题您是否已经解决?
如果没有解决,欢迎跟贴接续讨论,如果已经解决请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062

menghuanyunxia 发表于 2015-6-24 14:27:00

回复 6楼frank.zhang的帖子

没有解决,是按照你提供的方式实现的。

frank.zhang 发表于 2015-6-24 15:50:00

您好,
是否能够提共一个能够重现问题的例子程序,我们这边可以帮您看下,是否有改进的方法。

menghuanyunxia 发表于 2015-6-25 10:58:00

回复 8楼frank.zhang的帖子

我们这边的SheetA和SheetB上填充了很多单元格,大概上千个,并且填充两个sheet很多次(根据我们的数据量大小确定次数),也设置了EnableCalculation=false, 调用SuspendXXXX()挂起刷新。

frank.zhang 发表于 2015-6-25 14:07:00

您好,
您的这个问题,我会尽快提交给产品组调查,如果有进一步的进展,我会在第一时间通知您。
页: [1] 2
查看完整版本: 【WinForms】设置单元格值时不停触发SheetDataModel事件