Показать сообщение отдельно
Старый 29.06.2012, 18:26   #43
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Не проще объем скачанного разделить на время прошедшее с начала скачивания? Получите среднюю скорость скачивания.

На C# пример:

Код:
using System;
using System.ComponentModel;
using System.Drawing;
using System.Net;
using System.Windows.Forms;

namespace WinFormsDownloadFileSpeed
{
    public partial class Form1 : Form
    {
        private WebClient Client = new WebClient();

        private string url = "http://snapshot.opera.com/windows/1986_12.01-1491/Opera-Next-12.01-1491.i386.exe";

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Client.DownloadFileCompleted += new AsyncCompletedEventHandler(Client_DownloadFileCompleted);
            Client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(Client_DownloadProgressChanged);
            Client.DownloadFileAsync(new Uri(url), "temp.file", DateTime.Now);
        }

        void Client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
            DateTime startTime = (DateTime)e.UserState;

            double speed = (e.BytesReceived / 1024) / (DateTime.Now - startTime).TotalSeconds;

            string text = String.Format("Speed: {0:F3} KB/sec", speed);
            PointF drawPoint = new PointF(progressBar1.Width / 2 - 40, progressBar1.Height / 2 - 7);

            progressBar1.Refresh();
            progressBar1.CreateGraphics().DrawString(text, SystemFonts.DefaultFont, Brushes.Black, drawPoint);
            progressBar1.Value = e.ProgressPercentage;
        }

        void Client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
        {
            MessageBox.Show("Downloaded!");
        }
    }
}

Последний раз редактировалось TOM_RUS; 29.06.2012 в 18:51.
TOM_RUS вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
partizanes (29.06.2012)