我正在创建一个下载速度测试,并将一个 800 兆位的文件下载到内存流中的字节 []
webClient.DownloadDataAsync(new Uri(link), memStreamArray);
下载时如何检查 memStreamArray 中有多少位?我需要这个,所以我可以计算大小/时间以实时获得速度。
我计划在 webClient.DownloadProgressChanged 事件中执行此计算。
为此,您需要一个 DownloadProgressChanged 事件处理程序。该DownloadDataAsync
方法中的第二个参数只是您可以在回调 UserState 变量中检索的对象,它只是传递 - 您可能在您的场景中没有使用它。
WebClient webClient = new WebClient();
webClient.DownloadProgressChanged += delegate(object sender, DownloadProgressChangedEventArgs e)
{
Console.WriteLine(e.BytesReceived);
};
webClient.DownloadDataAsync(new Uri(link));
1 字节 = 8 位,你有一个字节数组。计算数组中有多少字节乘以 8。或者这是一个技巧问题?
不确定这个线程安全,但你可以检查Length
内存流的属性。这将以字节为单位给出长度,然后转换为位。