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 に答える