0

我继承了一个使用 WebBrowser 控件来显示 PDF 文件的应用程序。在整个代码中,应用程序多次调用 Application.DoEvents 方法,通常是在调用 Navigate 函数并设置 WebBrowser 控件的 Url 属性之后(将两者都设置为 null,以清除页面)。我不确定为什么这样做,但我认为根据日志它会导致崩溃。

更新进度条和设置标签时也会使用此功能,但这是在循环中完成的,因此我可以看到它的用途。

有人可以解释为什么会这样做吗?我知道这个函数在循环内使用,但在循环外我不明白它的用途。这是我正在谈论的代码的两个示例:

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();
}

如果我在一次扫描中注释掉所有调用,可能会有什么副作用?应用程序的处理时间并不多,因此即使是 UI 延迟也不是问题。

4

0 回答 0