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.
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
.
You should never explicitly call
the Dispose method
with the disposing parameter
set to false
See the Documentation