アリスです。
C++/CLIで「オブジェクト参照がオブジェクト インスタンスに設定されていません。」というエラーがでました。
その原因を調べました。
親ダイアログから、子ダイアログを開く
FormLoading^ fLoading = gcnew FormLoading();
fLoading->ShowDialog(this);
このときShowDialogに渡したthisは親ダイアログ自身を表します。
子ダイアログからはthis->Ownerで取得できる。
しかしながら、下記の条件下ではOwnerがnullでとれてしまいます。
子ダイアログではDoWork関数のWhileループでスレッド処理をさせる。
子ダイアログにはキャンセルボタンを用意し、スレッド処理の途中キャンセル可にする。
その状態で、親ダイアログから子ダイアログを開いて、すぐにキャンセルボタンを押す。
すると、DoWork関数のWhileループ処理中に取得したOwnerがNullとなり、掲題の例外が発生する。
具体的なコードでは(FormMain^)this->Onwerがnullとなる。
原因は不明
対策としては、DoWork関数のWhileループに入る前に
This->Ownerを取得・保持しておき、(この状態では問題なくとれるため)
ループ内ではその保持したものを使用すればとりあえず解決した