Я пытаюсь скачать фильмы с моего сайта.Я разработал это приложение с использованием класса c # webclient.Он работает действительно здорово для небольших файлов, но когда я запрашиваю, например, 300 МБ файла, он останавливается после загрузки 36 МБ.
Я добавил свой код ниже
private void download()
{
try
{
WebClient client = new WebClient();
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
var url = _queurls.Dequeue();
var extt = _queexts.Dequeue();
client.DownloadFileAsync(new Uri("http://mysite.com" + url), location + "\\" + "YourMovieFile." + extt);
}
catch
{
this.Close();
}
}
void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
download();
}
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
double bytesIn = double.Parse(e.BytesReceived.ToString());
double totalBytes = double.Parse(e.TotalBytesToReceive.ToString());
double percentage = bytesIn / totalBytes * 100;
label1.Text = (percentage.ToString()).Substring(0, 3) + "%";
label2.Text = (bytesIn / 1048576).ToString().Substring(0, 4) + "MB / " + (totalBytes / 1048576).ToString().Substring(0, 4) + "MB";
progressBar1.Value = int.Parse(Math.Truncate(percentage).ToString());
}
Есть ли какая-либо оптимизация, котораянужно сделать на моем коде?Это из-за тайм-аута или из-за проблем с сервером?
Пожалуйста, помогите мне, эксперты. Спасибо