wpf - 使用 WPF Canvas 进行内存管理 - 大量(相同)对象
问题描述
问:WPF 画布可以在几个不同的地方绘制同一个子对象或对象,还是每个子对象/对象必须是唯一的?
我有一个 WPF 画布,我在其上绘制大量对象。它们中的大多数是许多相同的图像,据我所知,每个都必须是唯一创建的,因为 Canvas似乎无法Children.Add()
在几个不同的地方绘制(或者更确切地说)相同的图像(除非有办法做到这一点 - - 这将是可取的)。在绘制所有对象以将内存占用缩小到合理的大小(至少对于 WPF 项目)之后,我不得不手动执行System.GC.Collect()
几次。内存占用从绘制图像之前的大约 80MB 立即变为大约 225MB之后,直到System.GC.Collect()
被解雇几次后才会下降,再次回到大约 80MB 左右。
我也在 F# 中以编程方式执行此操作,因此我没有使用任何普通的 XAML,如果这有什么不同的话。
解决方案
推荐阅读
- php - 爆炸,数组和每个问题
- generics - 为什么即使泛型类型具有特征绑定,在对泛型类型的引用上也找不到方法?
- c++ - 在 Windows 上创建后更改共享内存的权限
- docker - Elasticsearch 集群查询
- url - InfluxDB 查询不适用于“WHERE”子句
- python - 为什么 ctrl+/ 在我的 jupyter 笔记本中评论整行?
- python - Great_Expectations Apache Spark 上的数据分析未生成预期的套件
- android - 返回类型'未来
'不是'未来 ',根据闭包上下文的要求 - android - 如何延迟 Android Studio 上的光传感器?
- log4j - 将 Build Id 添加到 MDC 无法正常工作