如何检查字节数组中有多少位?

时间:2011-01-04 13:44:48

标签: c# bytearray bits

我正在创建一个下载速度测试,并使用

将800兆位文件下载到内存流中的Byte []
webClient.DownloadDataAsync(new Uri(link), memStreamArray); 

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

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

3 个答案:

答案 0 :(得分:3)

您需要一个DownloadProgressChanged事件处理程序。 DownloadDataAsync方法中的第二个参数只是一个可以在回调UserState变量中检索的对象,它只是传递 - 你可能在你的场景中没有用它。

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

webClient.DownloadDataAsync(new Uri(link));

答案 1 :(得分:1)

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

答案 2 :(得分:1)

1个字节= 8位,你有一个字节数组。计算你在数组中有多少字节乘以8.或者这是一个技巧问题吗?