0

WebBrowser コントロールを使用して PDF ファイルを表示するアプリケーションを継承しました。コード全体で、アプリケーションは Application.DoEvents メソッドを何度も呼び出します。通常は、Navigate 関数を呼び出し、WebBrowser コントロールの Url プロパティを設定した後です (ページをクリアするために、両方を null に設定します)。なぜこれが行われたのかはわかりませんが、ログによるとクラッシュを引き起こしていると思います。

この関数は、進行状況バーを更新してラベルを設定するときにも使用されますが、これはループで行われるため、どのような目的に役立つかがわかります。

誰かがなぜこれが行われるのか説明できますか? この関数がループ内で使用されることは知っていますが、ループ外ではその目的がわかりません。私が話しているコードの 2 つのサンプルを次に示します。

private void txtBoxFile_TextChanged(object sender, EventArgs e)
{
   browser.Navigate("");
   browser.Url = null;
   Application.DoEvents();
}

private UpdateMessage(int timePassed)
{
   progressBar.Value = (int)Math.Min(timePassed, progressBar.Maximum);
   label.Text = timePassed.ToString() + " seconds have elapsed.";
   Application.DoEvents();
}

1 回のスイープですべての呼び出しをコメントアウトすると、どのような副作用が生じる可能性がありますか? アプリ自体の処理時間はさほどかからないので、UI の遅延も気になりません。

4

0 に答える 0