またしてもVB.NETでの開発で困ったことがあったので調べて実装した結果を備忘録に記載します。
やりたいこと:
1.メイン処理を行う際にキャンセル可能な処理中画面を表示する
2.処理中画面はモーダル表示にしたい
通常では、画面をモーダル表示してしまうとメイン処理がモーダル表示している側に移ります。

時間のかかる処理の進行状況を表示する
を参考にしてみたものの呼び出し元画面の制御が必要でした。
そこで更に調べた結果、以下のような記事がありました。

【C#】プログレスバーウィンドウをFormの別スレッド化で後付けでも使えるようにしてみる - あらかじめ日記
さて、よくアプリケーションで見かける処理の経過を示すプログレスバーの作成方法はこちらが参考になります。 進行状況ダイアログを表示する: .NET Tips: C#, VB.NET 今回は「やっぱりこの処理、プログレスバー出すようにしたい…」と言う後付けで対応したいケースがありまして、思いつきで考えた方法の備忘録です。
シングルトンにする。。考え付きませんでした。
ということで、同じ内容を記載しても失礼なのでリンクとVB.NET用にしたソースのみ置いておきます。