单声道 - DownloadProgressChanged - bug?

时间:2012-07-16 11:40:38

标签: c# mono webclient

我在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();
}

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这看起来像一个已修复的错误:https://bugzilla.xamarin.com/show_bug.cgi?id=2482

我相信最新的Mono(2.10.9)已包含此修复程序。