2011年11月19日 星期六

webclient與執行緒實作下載速度

webclient與執行緒實作下載速度
程式語言 : C# 2008

類別下載 : https://sites.google.com/site/ahijup/downloadspeed/getfile.txt

重要程式片段 :

//新增downloadProgress變更的事件處理
GetFile gf = new GetFile();
gf.OnDownloadProgressChanged += new GetFile.OnDownloadProgressChangedEx(gf_OnDownloadProgressChanged);
//新增下載完成事件處理
gf.OnDwonloadComplete += new GetFile.DownloadCompleteEvent(gf_OnDwonloadComplete);

PathUrl pu = new PathUrl();
pu.Url = Url;
pu.SavePath = SavePath ;

//新增背景下載執行緒
System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(gf.GetFileAsyn), pu);

.
.
.
//下載完成
void gf_OnDwonloadComplete(object obj)
{
}

.
.
.
//下載狀態改變
void gf_OnDownloadProgressChanged(object obj, DownloadProgressChangedEventArgsEx e)
{
if (e != null)
{
ProgressValueChange(this.progressBar1, e.e.ProgressPercentage);
SetLabelText(this.label4, "下載速度 : " + e.DownloadSpeed + "KB/s" );
SetLabelText(this.label5, "剩餘時間 : " + e.RemainingTime.ToString());
//Console.WriteLine(e.RemainingTime.TotalMilliseconds + "~" + e.DownloadSpeed.ToString());
}
//throw new NotImplementedException();
}


下次繼續再寫斷點下載&多線程下載。

沒有留言: