我在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();
}
有什么建议吗?
答案 0 :(得分:0)
这看起来像一个已修复的错误:https://bugzilla.xamarin.com/show_bug.cgi?id=2482。
我相信最新的Mono(2.10.9)已包含此修复程序。