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