【问题标题】:How to Dispose SharpDX objects如何处理 SharpDX 对象
【发布时间】:2014-12-01 12:54:19
【问题描述】:

在网上搜索后,我对如何处理 sharpdx 对象感到完全困惑。我不知道我应该如何处置它们。 我应该像非托管资源一样处理它们吗? 如果我不处置它们,我的应用程序是否会造成内存泄漏? Shardx 类是否已经覆盖了终结器?

【问题讨论】:

    标签: c# .net dispose sharpdx


    【解决方案1】:

    是的,如果不处理它们可能会导致内存泄漏。

    看看这篇文章:

    http://english.r2d2rigo.es/2014/09/18/proper-lifecycle-management-of-sharpdx-resources-in-cxaml-universal-apps/

    您还可以为您的类实现 Idisposable 接口并手动处置您的对象。

    【讨论】:

    • 谢谢。还有一件事。将它们放在终结器中是否足以防止内存泄漏?我应该在对象本身上使用 Utilities.Dispose 还是 Dispose?
    • 在你的对象上调用 dispose 方法就足够了。避免使用终结器,因为它可能会减慢垃圾收集过程。
    • 谢谢。但据我所知,没有终结器就无法自动处理对象。我说的对吗?
    • 是的,如果它是非托管资源,您将需要使用终结器。但是,如果对象继承了 Idisposible 接口,您应该能够通过调用 .dispose() 方法来处理它。 msdn.microsoft.com/en-us/library/…
    • 所以我实际上必须实现Idisposable并手动调用Dispose,并使用终结器以防忘记调用Dispose。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2011-10-13
    • 2016-01-16
    • 2012-06-06
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多