次の方法で共有


CriticalHandle.Close メソッド

定義

リソースを解放するためのハンドルをマークします。

public:
 void Close();
public void Close ();
[System.Security.SecurityCritical]
public void Close ();
member this.Close : unit -> unit
[<System.Security.SecurityCritical>]
member this.Close : unit -> unit
Public Sub Close ()
属性

注釈

メソッドまたは Dispose メソッドをClose呼び出すと、リソースを解放できます。 クラスとは異なり、他の SafeHandle スレッドがこのハンドルを使用していることを示す参照カウントがないため、これは常に直ちに発生します。 そのため、同期メカニズムを使用して、 メソッドを呼び出しても安全であることを確認する Close 必要があります。 クラスを CriticalHandle 使用するほとんどのクラスではファイナライザーを提供する必要はありませんが、これは必要になることがあります (たとえば、ファイル バッファーをフラッシュしたり、データをメモリに書き戻したりするため)。 この場合、 クラスは、クリティカル ファイナライザーを実行する前に実行することが保証されるファイナライザーを CriticalHandle 提供できます。

オブジェクトの Close 使用が完了したら、 メソッドまたは Dispose メソッドを CriticalHandle 呼び出します。 メソッドは Close 、オブジェクトを CriticalHandle 使用できない状態のままにします。

メモオブジェクトへの最後の参照を解放する前に、 または Dispose を常にCriticalHandle呼び出Closeしてください。 そうしないと、ガベージ コレクターが CriticalHandle オブジェクトの Finalize メソッドを呼び出すまで、使用されているリソースは解放されません。

適用対象