System.Runtime.InteropServices.CriticalHandle.Dispose Method

Releases all resources used by the System.Runtime.InteropServices.CriticalHandle.

Syntax

[System.Runtime.ConstrainedExecution.ReliabilityContract(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
public void Dispose ()

Remarks

Calling the CriticalHandle.Close or CriticalHandle.Dispose method allows the resources to be freed. Unlike the System.Runtime.InteropServices.SafeHandle class, this will always happen immediately since there is no reference count to indicate that other threads are using this handle. Therefore, you must employ a synchronization mechanism to ensure it is safe to call the CriticalHandle.Dispose method. Although most classes that use the System.Runtime.InteropServices.CriticalHandle class 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, the class can provide a finalizer that is guaranteed to run before the System.Runtime.InteropServices.CriticalHandle critical finalizer runs.

Call the CriticalHandle.Close or CriticalHandle.Dispose method when you are finished using the System.Runtime.InteropServices.CriticalHandle object. The CriticalHandle.Close method leaves the System.Runtime.InteropServices.CriticalHandle object in an unusable state.

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

Requirements

Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 2.0.0.0, 4.0.0.0
Since: .NET 2.0