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();
}
助言がありますか?