編集:はい、ダイアログは.NETの単なるwhileループではありません。私は、MessageBox.Showが質問の作成者が尋ねたようにブロックする理由の簡単な説明を伝えようとしただけです。以下の文言をより適切に修正しました。
ページが完全に読み込まれるのを待つ必要がある場合は、ページがいつ終了するかを判断するために、何らかのトリガーを追加する必要があります。
for (int i = 0; i < 10; i++)
{
MessageBox.Show("i");
}
次のように書くことができます:
for(int i = 0; i < 10; i++)
{
bool isRunning = true;
while(isRunning)
{
isRunning = CheckIfSomethingIsStillRunning();
Thread.Sleep(10);
}
}
基本的に、スレッド/プログラムを続行する必要があると判断するまで、ループを継続する必要があります。
MessageBox.Show()がブロックされる理由は、Windowsが実際には、メッセージを常に受信してペイントしているwhileループで実行されているためです。ダイアログ(Window.ShowDialog()、MessageBox.Show())を表示すると、ウィンドウが閉じられるのを待つのをブロックし続けるメソッドがあります。
これがお役に立てば幸いです。