したがって、基本的には、たとえば1時間ごとにローテーションするfile.jpgと呼ばれるファイルをダウンロードするフォームがあり、ダウンロードを開始するボタンがあり、ランダムに任意の時間ダウンロードします(主にこれは自己学習です)練習問題) 私はコード in progressChange を追加するのが好きで、時間の経過とともに受信したバイト数を何らかの方法で取得して kb/s を取得したいと考えています。私はグーグルで検索しましたが、何も見つかりません。派手なネットワーク スタックは必要ありません。それらは標準の jpeg であるため、大きすぎません (実際、ファイルがダウンロードされるまでに、プログレス バーをクリアすると、最初は見たことがありませんでした..しかし、余談です)。 2 秒間表示されたとしても、平均 kb/s を見るのが好きです (ファイルはそれぞれ約 1 メガバイトです)。どんな助けでも大歓迎です。
private void btnStart_Click(object sender, EventArgs e)
{
btnStart.Enabled = false;
btnStop.Enabled = true;
WebClient webclient = new WebClient();
webclient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webclient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
// you need to increment the number !!!
// add the file to the list.
// single click should preview
// progress bar should clear after it downloads
// the status bar as well should be done
int num = nextIndex() + 1;
string file = @"C:\IMG\IMG_";
file += string.Format("{0:d5}", num);
file += ".jpg";
webclient.DownloadFileAsync(new Uri("http://www.foobar.com/file.jpg"), file);
lstFiles.Enabled = false;
}
private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
// display kb/sec as well??
pbDownload.Value = e.ProgressPercentage;
}