2

ダウンロード速度テストを作成し、800メガビットのファイルをメモリストリームのByte[]にダウンロードします。

webClient.DownloadDataAsync(new Uri(link), memStreamArray); 

ダウンロード中にmemStreamArrayにあるビット数を確認するにはどうすればよいですか?サイズ/時間の計算を行って速度をリアルタイムで取得できるようにするために、これが必要です。

webClient.DownloadProgressChangedイベントでこの計算を実行することを計画しています。

4

3 に答える 3

3

これには、DownloadProgressChangedイベントハンドラーが必要です。メソッドの2番目のパラメーターは、DownloadDataAsyncコールバックUserState変数で取得できる単なるオブジェクトであり、単なるパススルーです。シナリオでは、おそらくこのパラメーターを使用する必要はありません。

WebClient webClient = new WebClient();
webClient.DownloadProgressChanged += delegate(object sender, DownloadProgressChangedEventArgs e)
{
    Console.WriteLine(e.BytesReceived);
};

webClient.DownloadDataAsync(new Uri(link));
于 2011-01-04T13:52:45.883 に答える
2

1バイト=8ビットで、1バイトの遅延があります。配列にあるバイト数に8を掛けて数えます。それとも、トリックの質問ですか?

于 2011-01-04T13:55:54.950 に答える
1

これのスレッドセーフについてはわかりませんがLength、メモリストリームのプロパティを確認できます。これにより、長さがバイト単位で示され、ビットに変換されます。

于 2011-01-04T13:51:17.777 に答える