Я не вижу цели цикла, который у вас есть в вашем коде, а также строки result
. Вот что у меня есть для вашей проблемы.
Вот код, который в конечном итоге запустит процесс:
string url = "http://www.cornfedsystems.com";
Uri uri = new Uri(url);
WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
client.AllowReadStreamBuffering = true;
client.DownloadStringAsync(uri);
Вот обработчик события:
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
Debug.WriteLine(e.Result);
}
Вся обработка результатов должна выполняться в обработчике событий, который будет запускаться, когда все будет готово (в вашем случае - загружается строка). С DowhloadStringAsync вы получите источник страницы - он постоянный и не меняется (в отличие от динамического канала), поэтому вам не нужен цикл там.