C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.13312 の関連記事表示

<< 0 >>
■13312  Re[5]: eventについて
□投稿者/ nori -(2008/01/26(Sat) 22:54:48)
    >GCアルゴリズム詳細解説
    >http://wiki.livedoor.jp/author_nari/d/GC
    素晴らしいサイトのご紹介ありがとうございます
    こんなに色々なアルゴリズムが存在するとは思っていませんでした。
    正直ビックリです。
    
    基本的には、オブジェクトの参照が切れたら解放されると言う事ですね。
    唯、オブジェクトの参照が切れている状態が、曖昧で分り難いと思いました。
    
    例えば以下のような場合。
    public void Test()
    {
        Hoge o = new Hoge ();
    }
    このような場合は、関数を抜ければHogeクラス(変数o)の参照が切れる事は理解できるのですが
    
    public void Test2()
    {
        Hoge o = new Hoge();
        this.hogeEvent += new EventHandler(o.handler);  // イベントに登録
    }
    
    上記のような場合はどうなのでしょうか?
    Test2関数を抜ければ、Hogeクラス(変数o)自体にはもうアクセスできませんが、
    hogeEventからは、handler関数が呼ばれる為、参照は切れていないと言う判定になるのでしょうか?
    それとも、参照が切れていると言う判定になり、GCが走った時点でメモリ解放されアクセスバイオレーションとなる危険なコードなのでしょうか?
    
    中々奥が深くて難しいですね。
記事No.13141 のレス /過去ログ28より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -