0

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

有什么建议么?

4

1 回答 1

0

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

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

于 2012-07-16T23:30:35.160 回答