Search Results for

    Show / Hide Table of Contents

    Disposable Types Classification and Undisposed Instances

    When presenting analysis issues regarding undisposed instances, .NET Memory Profiler needs information about what would have been performed if the instance was correctly disposed. This information is provided by classifying the actions that are performed when disposing instances of the type. The actions are classified as:

    • Release resource
      Disposing instances of this type might release native resource instances.

    • Detach events
      Disposing instances of this type might detach event handlers from external instances. If the external instance has a longer lifetime than the disposable instance, failing to dispose the disposable instance can cause a memory leak.

    • Remove external references
      Disposing instances of this type might remove references to the disposable instance from external instances. If the external instance has a longer lifetime than the disposable instance, then failing to dispose the disposable instance can cause a memory leak.

    • Dispose other instances
      Disposing instances of this type might cause other instances to be disposed.

    • Release COM interfaces
      Disposing instances of this type might cause COM interface wrappers (CCWs and RCWs) to be released.

    • Perform cleanup/exit action
      Disposing instances of this type might cause some cleanup or exit action to be performed. This action can for instance be flushing data to a file, committing or reverting a transaction, clearing security buffers, or deleting temporary files.

    • Suppress finalization
      Disposing instances of this type will suppress the finalization of the instance (i.e. GC.SuppressFinalize will be called).

    • Clear references
      Disposing instances of this type might clear references to other instances.

    .NET Memory Profiler provides classifications for all disposable types that are included in .NET Framework 2.0/3.0/3.5. The classifications have only been partially updated for .NET Framework 4.0 and later.

    If a classification for a specific disposable type cannot be found, .NET Memory Profiler will search for a base type with dispose classification for. If base type classification is used, the text (inherited) will be appended to the type when presented by the profiler.

    In This Article
    Back to top

    © Copyright 2002-2020. SciTech Software AB.
    For information about .NET Memory Profiler, see the product site at https://memprofiler.com