SafeHandle.Close メソッド


リソースを解放するためのハンドルをマークします。Marks the handle for releasing and freeing resources.

 void Close();
public void Close ();
public void Close ();
member this.Close : unit -> unit
Public Sub Close ()


Close または Dispose メソッドを呼び出すと、リソースを解放できます。Calling the Close or Dispose method allows the resources to be freed. 他のスレッドが同じセーフハンドルオブジェクトを使用している場合、この処理はすぐには行われませんが、その場合はすぐに発生します。This might not happen immediately if other threads are using the same safe handle object, but will happen as soon as that is no longer the case. SafeHandle クラスを使用するほとんどのクラスはファイナライザーを提供する必要はありませんが、これが必要になることがあります (たとえば、ファイルバッファーをフラッシュする場合や、データをメモリに書き戻す場合など)。Although most classes that use the SafeHandle 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). この場合、クラスは、SafeHandle クリティカルファイナライザーが実行される前に実行が保証されるファイナライザーを提供できます。In this case, the class can provide a finalizer that is guaranteed to run before the SafeHandle critical finalizer runs.

SafeHandle オブジェクトの使用が終了したら、Close または Dispose メソッドを呼び出します。Call the Close or Dispose method when you are finished using the SafeHandle object.


SafeHandle オブジェクトへの最後の参照を解放する前に、常に Close または Dispose を呼び出してください。Always call Close or Dispose before you release your last reference to the SafeHandle object. そうしないと、ガベージ コレクターが SafeHandle オブジェクトの Finalize メソッドを呼び出すまで、使用されているリソースは解放されません。Otherwise, the resources it is using will not be freed until the garbage collector calls the SafeHandle object's Finalize method.