|  | 分類:[C++/CLI]
 
 環境
 OS:WinXP SP2
 デバッガ:VidualStudio.Net 2005 StandardEdition
 
 始めまして。
 今現在C++/CLIの環境でフォームのオープンを
 
 if(hForm == nullptr || hForm->IsDisposed)
 {
 hForm = gcnew myForm();
 hForm->Show();
 }
 
 このように実装しています。
 フォームを閉じるときにしっかりデストラクタを通ってたのにIsDisposedが参照できるので
 MSDNを覗いたところ、
 
 >このプロパティが true を返す場合は、コントロールが破棄されており、
 >有効な Windows コントロールとして参照できません。コントロールのインスタンスは破棄されても、
 >ガベージ コレクションによってメモリから削除されるまでは、メモリ内に保持されます。
 >コントロールが破棄されると、その RecreateHandle メソッドを呼び出すことはできません。
 
 このようにありました。
 これは参照はガベージコレクションが起きるまでが有効なので、上のコードは基本的には通常の動作をしながら
 いきなりIsDisposedの参照部分で実行時エラーを起こしてしまう可能性があるということなのでしょうか?
 
 誰か分かる人がいたら教えてください。よろしくお願いします。
 
 |