2

长期观察者,这是我的第一篇文章,所以请放轻松。我环顾四周,但我的查询非常具体,在其他地方找不到。

我有一个包含 2 个控件的应用程序。

  • 左侧的控件包含一个树视图,它显示从 XML 文件映射的搜索。每个搜索都有一个关联的 GUID。
  • 右侧的控件显示了一个数据网格,我通过字典 (Guid<->Dataset) 从树视图中获取了该数据网格的信息。

当用户单击树视图中的节点时,我的应用程序会计算出搜索链接的 GUID,并显示相关的数据集,该数据集被展平并显示在数据网格上。

我分别在退出/加载应用程序时保存(序列化)和加载(反序列化)字典。

我最近做了一些内存分析,对于更大的搜索,字典的内存占用可能非常大(200mb),因为我确实需要整理用户机器的有限容量。

我想知道是否有人知道如何实现这一目标。

我正在考虑将 Serialisable Dictionary 拆分为组成数据集,并将每个数据集单独存储在硬盘驱动器上(可能使用 GUID 作为文件名)。然后,保存的数据集将使用每个 Node.Click 事件反序列化并显示在网格视图中。我对此的担心是每次点击事件之间的潜在暂停,因为它会保存旧搜索并加载新搜索。

4

1 回答 1

1

简单的答案,将字典和数据集扔到一个 Sqlite 文件中。(或其他数据库)它会慢一点,但我希望比您可以在合理时间内提交代码的任何代码都快。如果使用得当,db 层将进行内存缓冲和缓存,以使 ui 更具响应性。

于 2012-07-16T01:03:37.043 回答