【发布时间】:2013-07-23 17:04:17
【问题描述】:
我在创建的 while 循环中遇到了程序流问题。
while (reader.Read())
{
// Store scenario information
int Id = (int)reader["ScenarioID"];
string Data = reader["ScenarioData"].ToString();
string Url = "http://google.com";
// Initialize result information
int HasSucceeded = 0;
var screenshot = new Byte[] { };
// Navigate to webBrowser
webBrowser2.Navigate(Url);
webBrowser2.DocumentCompleted += WebBrowserDocumentCompleted;
// Do test
TestScenarios(Url, HasSucceeded);
// Take screenshot
TakeScreenshot(screenshot);
// Insert results
InsertResults(Id, HasSucceeded, screenshot);
// Mark scenario for deletion
MarkScenario(Id);
}
private void WebBrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs Url)
{
MessageBox.Show("Operation has completed!");
}
程序的预期流程应该是
- 读取表格中的一项
- 初始化一些变量/存储一些值
- 将 webBrowser 控件导航到 URL
- webBrowser 控件完成后,进行测试
- 截图
- 将结果插入新表
- 将原表中的项目标记为删除
- 循环回到#1,直到所有项目都被覆盖。
但是,发生的情况是 while 循环中的所有内容都按照 except 的顺序正常运行 webBrowser2.Navigate 行,在 while 循环退出之前不会显示 Url。在 URL 显示后,立即出现 5 条连续消息“操作已完成”(针对表中的 5 项)。如何修复我的流程?
【问题讨论】: