次の方法で共有


IClosable.Close メソッド

定義

Windows ランタイム オブジェクトによって公開されるシステム リソースを解放します。

。ネット このインターフェイスは System.IDisposable として表示されます。

C++/CX このインターフェイスは Platform::IDisposable として表示されます。

public:
 void Close();
void Close();
public void Close();
function close()
Public Sub Close ()

注釈

以下の実装/呼び出し元のメモは、WRL に主に関連します。

実装者へのメモ

ファイル ハンドル、ストリーム、ネットワーク ソケットなど、使用中の排他的なシステム リソースを解放するには、このメソッドを実装します。 メソッドは、再利用できるように準備するために、オブジェクト参照やメモリなど、使用中の他のリソースも解放する必要があります。

このメソッドは、 IClosable を実装するオブジェクトの Close メソッドを呼び出す必要があります。

Close メソッドは、非同期操作の完了をブロックすることなく、システム リソースをできるだけ早く解放する必要があります。 すべてのリソースが完全に解放されるようにするには、呼び出し元は、未処理のすべての非同期操作が完了するまで待機してから Close を呼び出す必要があります。

Close が返された後、オブジェクトはまだメモリ内にありますが、必要なシステム リソースはありません。そのため、そのメンバーのほとんどは使用できません。 解放されたシステム リソースに依存するメンバーは 、オブジェクト が閉じられ、要求された操作を完了できないことを示すために、RO_E_CLOSEDを返すことができます。

呼び出し元へのメモ

Close を複数回呼び出した場合、効果はありません。メソッドは S_OKを返します。

Close メソッドは、クラスが IClosable を実装Windows ランタイムクラス インスタンスでは C++/CX を介して呼び出すことはできませんが、現在のスコープの末尾で自動的に呼び出されます。 ランタイム クラスの C++/CX コードでは、デストラクターを呼び出すか、最後の参照を null に設定する必要があります。

C# では、このメソッドは Dispose として公開されます。 Dispose を直接呼び出すか、 using ステートメントを使用できます。

適用対象