0

我有一个主细节支点。Pivot 包含 5 个 PivotItems,每个 PivotItems 都有十几个项目。每个项目都有详细信息页面。

现在我注意到它非常消耗内存。所以我正在考虑减少内存使用的方法。

  • 我将 PivotItems 的加载移至 IndexChanged 事件(所有数据透视项都继承自基数据透视类,并且 Pivot 调用它们的 OnPivotItemActivated(),所有初始化都在此处完成)。
  • 现在我正在考虑从内存中上传所有 PivotItem 的内容,同时转到详细信息页面。我怎样才能做到这一点?只需将 ItemsList 设置为 null?
4

1 回答 1

0

简短的回答是打电话

GC.Collect()

这将调用垃圾收集器并从内存中清除所有未使用的对象。这也是一个坏主意。

长答案:

.Net 是一种托管内存环境。这意味着它会在需要更多内存时自动回收内存。.Net 通过运行其垃圾收集器来回收内存。下面是垃圾收集器的作用:

  1. 它会停止应用程序中的每个执行线程
  2. 它会检查应用程序中的每个对象,以查看它是否被 CPU 引用或使用。
  3. 那些未使用的对象将从内存中删除,剩余的对象将被赋予新的内存地址,以便您的应用程序内存处于单个连续块中。

因此,.Net 会在需要时回收内存,因此您无需担心。

如果您真的想手动执行此操作,请在用户希望应用程序暂停的地方执行此操作,例如:

  • 保存数据
  • 从屏幕 X 移动到屏幕 Y
于 2013-07-04T09:02:17.073 回答