SafeHandle.Dispose Method

Definition

Releases the resources used by the SafeHandle class.

Overloads

Dispose()

Releases all resources used by the SafeHandle class.

Dispose(Boolean)

Releases the unmanaged resources used by the SafeHandle class specifying whether to perform a normal dispose operation.

Dispose()

Releases all resources used by the SafeHandle class.

public:
 virtual void Dispose();
public void Dispose ();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()

Implements

Remarks

Calling the Close or Dispose method allows the resources to be freed. This might not happen immediately if other threads are using the same instance of the safe handle, but will happen as soon as that is no longer the case. Although most classes using SafeHandle do not need to provide a finalizer, this is sometimes necessary (for example, to flush out file buffers or to write some data back into memory). In this case, they can provide a finalizer that is guaranteed to run before the SafeHandle critical finalizer runs.

Call the Close or Dispose method when you are finished using the SafeHandle object. The Close method leaves the SafeHandle object in an unusable state.

Note

Always call the Close or Dispose method before you release your last reference to the SafeHandle object. Otherwise, the resources it is using will not be freed until the garbage collector calls the SafeHandle object's Finalize method.

Security

SecurityPermission
for permission to call unmanaged code. Security action: LinkDemand. Associated enumeration: UnmanagedCode

Dispose(Boolean)

Releases the unmanaged resources used by the SafeHandle class specifying whether to perform a normal dispose operation.

protected:
 virtual void Dispose(bool disposing);
[System.Security.SecurityCritical]
protected virtual void Dispose (bool disposing);
abstract member Dispose : bool -> unit
override this.Dispose : bool -> unit
Protected Overridable Sub Dispose (disposing As Boolean)

Parameters

disposing
Boolean

true for a normal dispose operation; false to finalize the handle.

Attributes

Remarks

You should never explicitly call the Dispose method with the disposing parameter set to false.

Security

SecurityPermission
for permission to call unmanaged code. Security action: LinkDemand. Associated enumeration: UnmanagedCode

Applies to