使用与WebBrowser控件相关的Application.DoEvents

时间:2012-05-30 20:14:24

标签: .net winforms

我继承了一个使用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延迟也不是问题。

0 个答案:

没有答案