长期观察者,这是我的第一篇文章,所以请放轻松。我环顾四周,但我的查询非常具体,在其他地方找不到。
我有一个包含 2 个控件的应用程序。
- 左侧的控件包含一个树视图,它显示从 XML 文件映射的搜索。每个搜索都有一个关联的 GUID。
- 右侧的控件显示了一个数据网格,我通过字典 (Guid<->Dataset) 从树视图中获取了该数据网格的信息。
当用户单击树视图中的节点时,我的应用程序会计算出搜索链接的 GUID,并显示相关的数据集,该数据集被展平并显示在数据网格上。
我分别在退出/加载应用程序时保存(序列化)和加载(反序列化)字典。
我最近做了一些内存分析,对于更大的搜索,字典的内存占用可能非常大(200mb),因为我确实需要整理用户机器的有限容量。
我想知道是否有人知道如何实现这一目标。
我正在考虑将 Serialisable Dictionary 拆分为组成数据集,并将每个数据集单独存储在硬盘驱动器上(可能使用 GUID 作为文件名)。然后,保存的数据集将使用每个 Node.Click 事件反序列化并显示在网格视图中。我对此的担心是每次点击事件之间的潜在暂停,因为它会保存旧搜索并加载新搜索。