2

我正在创建一个下载速度测试,并将一个 800 兆位的文件下载到内存流中的字节 []

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

下载时如何检查 memStreamArray 中有多少位?我需要这个,所以我可以计算大小/时间以实时获得速度。

我计划在 webClient.DownloadProgressChanged 事件中执行此计算。

4

3 回答 3

3

为此,您需要一个 DownloadProgressChanged 事件处理程序。该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 位,你有一个字节数组。计算数组中有多少字节乘以 8。或者这是一个技巧问题?

于 2011-01-04T13:55:54.950 回答
1

不确定这个线程安全,但你可以检查Length内存流的属性。这将以字节为单位给出长度,然后转换为位。

于 2011-01-04T13:51:17.777 回答