英語で読む

次の方法で共有


SafeHandle.Close メソッド

定義

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

C#
public void Close();
C#
[System.Security.SecurityCritical]
public void Close();
属性

注釈

または Dispose メソッドをClose呼び出すと、リソースを解放できます。 これは、他のスレッドが同じセーフ ハンドル オブジェクトを使用している場合、すぐには発生しない可能性がありますが、そうではなくなったらすぐに発生します。 クラスを SafeHandle 使用するほとんどのクラスではファイナライザーを提供する必要はありませんが、(たとえば、ファイル バッファーをフラッシュしたり、データをメモリに書き戻したりするために) 必要な場合があります。 この場合、 クラスは、クリティカル ファイナライザーが実行される前に実行することが保証されるファイナライザーを SafeHandle 提供できます。

オブジェクトの Close 使用が完了したら、 メソッドまたは Dispose メソッドを SafeHandle 呼び出します。

注意

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

適用対象

製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1