У меня возникают проблемы с потоком моей программы в цикле 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!");
}
Ожидаемый поток программы должен быть
- Прочитайте элемент в таблице
- Инициализировать несколько переменных/сохранить некоторые значения
- Перемещения по обозревательУправлению носку URL
- Когда управление веб-браузером закончено, выполните тест
- Сделайте снимок экрана
- Внести результаты в новый стол
- Отметить позицию в исходной таблице для удаления
- Петля назад до № 1 до тех пор, пока все предметы не будут покрыты.
Однако то, что происходит это все в то время цикла работает должным образом, чтобы кроме для webBrowser2.Navigate
линии, которая не показывает URL-адрес до тех пор, пока цикл не завершается. Сразу после появления Url появляется 5 последовательных сообщений «Операция завершена» (для 5 элементов в таблице). Как я могу исправить поток?
Я получаю «неверную попытку вызвать чтение, когда читатель закрыт», но, спасибо, например, я работаю над этим. –
где вы вызываете 'connection.close()'? не вызывайте его за пределами этого блока, вместо этого вызывайте connection.close() после цикла while –
Итак, я вызываю 'reader.Close();' сразу после цикла while, но я думаю, что это строка 'Start();' это вызывает исключение, потому что когда я удаляю эту строку, я не получаю исключения, но это все еще не работает. –