我对 Mono 中的 WebClient 的 DownloadProgressChaned 事件有疑问。BytesReceived 属性似乎不起作用。它总是返回一个对我来说似乎是随机的数字,并且与接收到的字节的实际计数无关。
此代码在 .NET 中运行良好,但在 Mono(2.10.8,Windows)中,每当 DownloadProgressChanged 被触发时,BytesReceived 都是“随机的”...
ProgressPercentage 也不起作用。
using (WebClient wc = new WebClient())
{
AutoResetEvent r = new AutoResetEvent(false);
wc.DownloadProgressChanged += (sender, e) =>
{
Console.WriteLine(string.Format("Received: {0} of {1} ({2} %)", e.BytesReceived, e.TotalBytesToReceive, e.ProgressPercentage));
};
wc.DownloadDataCompleted += (sender, e) =>
{
if (e.Error != null)
{
Console.WriteLine(string.Format("Error: {0}", e.Error.Message));
}
else
{
Console.WriteLine("OK");
}
r.Set();
};
string url = @"http://someurl/somefile.pdf";
wc.DownloadDataAsync(new Uri(url));
r.WaitOne();
}
有什么建议么?