質問
class ResourceWrapper
{
int handle = 0;
public ResourceWrapper()
{
handle = GetWindowsResource();
}
~ResourceWrapper() //this line here
{
FreeWindowsResource(handle);
handle = 0;
}
[DllImport("dll.dll")]
static extern int GetWindowsResource();
[DllImport("dll.dll")]
static extern void FreeWindowsResource(int handle);
}
どのようなチルダについては、ライン表示されます。
後手後手の対応をしているのはビット単位でない者のgdp思う全体ブロックがあり、と述べ、括弧blovk後でなmethd、またはパラメータまたはもうあるチルド前です。
解決
ることが デストラクタ.での全ての資源をされたガベージコレクション
他のヒント
この実装は、finalizerのファイナライズメソッドのクラスです。通常はまず実施するfinalizer.
E.g.この授業を保有する外管の資源が必ず実装してください、IDisposableパターンの場合です。
C++, ~ClassName
のデストラクタ。くというクライアントまで、フルのC#ときにオブジェクトに問題が清掃、ゴミがございます。なC++言語により決定的な時間のデストラクタが呼び出されると、その予測がれます(または場合でも"と呼びます)クライアントまで、フルのC#.
うことがあるでしょうみの IDisposable
パターンは、より良いアプローチ。
である デストラクタ.あるいは暗黙的制御放します。していることによって呼び出され ガベージコレクタ.したい場合は明示的な制御をリリースの資源を実現致しました IDisposable チェック の実施を決定及び処分にポリシー資源の.の 枠組みの設計ガイドライン もよります。
Ackだけでは答えが見えないのできれいに表示されない私の質問です。を指定しますデストラクタのクラス
私はこんなスレッドセーフで、C#、などのコードは、このように見えdeconstructorい
- 無料で参照するリソースの
handle
- セット
handle
へ0
必ずしも
うような碁とを明らかにしようとしない"とも...:)
私が誤っている可能性が考えられことになりました。
greetz
back2dos