C#で「そもそもハンドルを持つリソースはGCの対象にはならない」ってどういうことですか?


http://d.hatena.ne.jp/Kazzz/20060922/p1

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:2006/09/24 04:15:43
  • 終了:2006/09/28 22:20:05

回答(2件)

id:Kazzz No.1

Kazzz回答回数2ベストアンサー獲得回数02006/09/24 09:07:47

ポイント35pt

記事を書いた本人です。

ウィンドウ ハンドル (HWND)、データベース接続など、ランタイムで管理されないリソースは、アンマネジリソースと呼ばれており、通常はIDisposableインタフェースを実装して、明示的な開放を行えるようにする必要がありますが、そのこと自体がGCの対象にはならないという訳ではありません。

誤解を招く書き方であり、日記は修正しました。

http://d.hatena.ne.jp/Kazzz

id:afternoontea

「ハンドルを持つリソース」の方に食いつきましたが、どちらかというと「あと、注意すべきはこのコードでControlCollectionから取り除かれたTextBoxクラスのインスタンスは、GCの対象にはならない、ということだ。」のほうが重要だったかも。

誰も参照していないフォームは、何故 GC の対象にならないのか

http://blogs.wankuma.com/shuujin/archive/2006/02/27/21562.aspx

誰も参照していないフォームは、何故 GC の対象にならないのか(その2)

http://blogs.wankuma.com/shuujin/archive/2006/04/10/22318.aspx

誰も参照していないフォームは、何故 GC の対象にならないのか(その3)

http://blogs.wankuma.com/shuujin/archive/2006/04/19/22610.aspx

2006/09/24 23:15:35
id:Kazzz No.2

Kazzz回答回数2ベストアンサー獲得回数02006/09/25 06:44:58

ポイント35pt

>あと、注意すべきはこのコードでControlCollectionから取り除かれたTextBoxクラスのインスタンスは、GCの対象にはならない、ということだ。

そういうことでしたら、このケースでは、コレクションから取り除かれたTextBoxは、パーキングウインドウ(ParkingWindow)が"仮の親"となって参照を保持しているので、GCの対象にはならないと思われます。

http://d.hatena.ne.jp/Kazzz/

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません