У меня есть следующий рабочий код для получения потока от URL:
private Stream GetDownloadStream(string url)
{
Stream stream = null;
AutoResetEvent downloadCompleted = new AutoResetEvent(false);
httpRequest = (HttpWebRequest)WebRequest.Create(url);
httpRequest.AllowReadStreamBuffering = false;
httpRequest.BeginGetResponse(
result =>
{
try
{
httpResponse = (HttpWebResponse)httpRequest.EndGetResponse(result);
stream = httpResponse.GetResponseStream();
}
catch (WebException)
{
downloadCompleted.Set();
Abort();
}
finally
{
downloadCompleted.Set();
}
},
null);
bool completed = downloadCompleted.WaitOne(15 * 1000);
if (completed) {
return stream;
}
return null;
}
Неважно, какие потоки я выбрал для воспроизведения. Он всегда возвращает поток для первых 6 запросов и возвращает ноль для семи запросов.
Я уже пытался увеличить время ожидания до 30 секунд, но при седьмом запросе он не будет введен при обратном вызове httpRequest.BeginGetResponse
.
Есть идеи, почему?