c# - 是否可以在 winrt 中完全处理用户控件?

标签 c# windows-runtime

我有一个应用程序,我可以根据情况动态创建用户控件。当我处理完它们后,我将它们从容器中移除,但它们仍在占用内存。

我已经在代码中实现了一个“dispose”方法来清除用户控件内部的控件,但我仍然觉得有更好的方法来做到这一点。

我不确定我可以发布什么代码,因为没有真正相关的代码。

我真正拥有的是我现在使用 dispose 方法所做的事情

  public void Dispose()
        {

            ContentWebView.NavigateToString("about:blank");
            YoutubeMediaPlayer.Stop();
        }

最佳答案

Dispose 方法用于释放非托管 资源。

当一个对象的所有引用都被移除时,垃圾收集器最终会“收集”它(释放内存)。您实际上无法控制这种情况何时发生,即使调用 GC.Collect 在技术上也只是一个建议。但是,您可以直接在对象上调用 dispose(请注意,如果它仍在使用中,这可能会导致奇怪的行为或异常!)

如果您怀疑某个控件有需要清理的非托管资源,您应该在完成后直接对其调用Dispose(GDI Bitmap 对象需要像这样清理) .从你的评论来看,听起来你只需要垃圾收集器来实际释放内存,这是很难控制的(不过你可以尝试调用 GC.Collect)。

用于处置的 MSDN:http://msdn.microsoft.com/en-us/library/system.idisposable.aspx

关于c# - 是否可以在 winrt 中完全处理用户控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23644119/

相关文章:

javascript - 我正在使用ajax获取。 Controller 中的响应是正确的,但在ajax中返回404错误

c# - 如何在 Startup.cs ASP.NET Core 中删除 WebDav

file-io - 在 Windows 8 RT 中替换或重新创建文件会保留旧的 DateCreated 值

c# - Win8 Javascript Metro 应用程序,带有 C# WinRT 组件和 SQLite

c# - 在 WinRT 中从外部获取 Page 实例

c# - WinRT 中(更新 ModifiedTime)中 "Touch"文件的优雅/高效方式?

c# - 是否有用于工作 HTTP 的流行 C# 库?例如简化使用 httpwebrequest 等

c# - 从 ControlTemplate By Name 在代码中获取控制权

c# - 按 DateTime 列(小时)从 DataTable 中选择行

c# - WinRT XAML 在 FlipView 项目模板中查找控件