我尝试做什么:
根据数据库中的数据生成报告,然后能够查看并打印它。 (这在WPF C#中)
我是怎么做的:(动态地,通过代码)
我的窗口很简单,它只是一个没有任何内容的FlowDocumentPageViewer。
这几乎可以正常工作,除非记录数量达到10k。然后由于某种原因它只是将我的CPU吸收到25%并且需要30分钟。滚动也几乎是不可能的,不会发生任何事情,它只是完全堵塞。 但是当我获得1k记录时,需要18秒。用2k,它的74秒。
但是,我不使用表格中标准的单元格方式,我必须为每个单元格制作一个TextBlock,并将其与BlockUIContainer一起使用。但经过一些测试后,它似乎对生成文档没有太大影响。
任何有关我应该担心的事情提示的人?这将是一个重要的帮助,我在这里打砖墙。
我想过可能只是渲染当前页面的方式,但我不知道FlowDocument会有多少页面。
我使用的数据类型只是字符串,有时是复选框(只读)。
编辑:
处理它的时间似乎非常稳定,保证金为1秒。但是指数,3k已经是164秒了。
EDIT2:
经过一些测试后,我发现 问题是我将TableCell添加到TableRow时。没有它,它只需要1.6秒。
答案 0 :(得分:0)
原因是分组。在wpf下,此功能存在已知的性能问题。尝试删除分组以进行测试,您将看到性能提升!