CriticalHandle.Close メソッド


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

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


メソッドまたCloseDisposeメソッドを呼び出すと、リソースを解放できます。Calling the Close or Dispose method allows the resources to be freed. SafeHandleクラスとは異なり、これは常に、他のスレッドがこのハンドルを使用していることを示す参照カウントがないため、直ちに発生します。Unlike the SafeHandle class, this will always happen immediately since there is no reference count to indicate that other threads are using this handle. そのため、 Closeメソッドを安全に呼び出すには、同期機構を使用する必要があります。Therefore, you must employ a synchronization mechanism to ensure it is safe to call the Close method. CriticalHandleクラスを使用するほとんどのクラスはファイナライザーを提供する必要はありませんが、これは必要になることがあります (たとえば、ファイルバッファーをフラッシュする場合や、データをメモリに書き戻す場合など)。Although most classes that use the 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). この場合、クラスは、 CriticalHandleクリティカルファイナライザーが実行される前に実行が保証されるファイナライザーを提供できます。In this case, the class can provide a finalizer that is guaranteed to run before the CriticalHandle critical finalizer runs.

オブジェクトのClose Dispose 使用が終了したら、メソッドまたはメソッドCriticalHandleを呼び出します。Call the Close or Dispose method when you are finished using the CriticalHandle object. メソッドCloseは、オブジェクトCriticalHandleを使用できない状態のままにします。The Close method leaves the CriticalHandle object in an unusable state.

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