|
分類:[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の参照部分で実行時エラーを起こしてしまう可能性があるということなのでしょうか? 誰か分かる人がいたら教えてください。よろしくお願いします。
|