C # WebClient загрузчик останавливается сам по себе, когда мы запрашиваем большие файлы для загрузки? - PullRequest
0 голосов
/ 04 февраля 2012

Я пытаюсь скачать фильмы с моего сайта.Я разработал это приложение с использованием класса 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());
}

Есть ли какая-либо оптимизация, котораянужно сделать на моем коде?Это из-за тайм-аута или из-за проблем с сервером?

Пожалуйста, помогите мне, эксперты. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...