C# 経由で COM コンポーネントを呼び出すラッパー クラスは、Dispose パターンを実装する必要がありますか?

StackOverflow https://stackoverflow.com/questions/1559227

  •  21-09-2019
  •  | 
  •  

質問

COM コンポーネントのラッパーとして機能する C# で書かれたクラスがあります。COM コンポーネントは早期バインドされており、RCW は Visual Studio によって生成されています。COM 参照をクリーンアップするにはラッパー クラスに破棄パターンを実装する必要がありますか、それとも既に RCW があるため GC に処理させるべきでしょうか?

役に立ちましたか?

解決

まれに 必要 Dispose を実装するには、多くの場合、そうする正当な理由があります。

COM オブジェクトがすぐに解放する必要がある重要なリソースを表す場合、それが Dispose を実装する適切な理由になる可能性があります。

destroy メソッドでは次のことができます:-

 System.Runtime.InteropServices.Marshal.ReleaseComObject(myRCW);

したがって、クラスを破棄すると、COM オブジェクトがすぐに解放されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top