Предполагая, что вы хотите сделать это синхронно, используя метод WebClient.OpenRead (...) и устанавливая время ожидания в возвращаемом потоке, вы получите желаемый результат:
using (var webClient = new WebClient())
using (var stream = webClient.OpenRead(streamingUri))
{
if (stream != null)
{
stream.ReadTimeout = Timeout.Infinite;
using (var reader = new StreamReader(stream, Encoding.UTF8, false))
{
string line;
while ((line = reader.ReadLine()) != null)
{
if (line != String.Empty)
{
Console.WriteLine("Count {0}", count++);
}
Console.WriteLine(line);
}
}
}
}
Извлечение из WebClient и переопределение GetWebRequest (...) для установки времени ожидания, предложенного @Beniamin, у меня не сработало, но это сработало.