我的目標是創建一個獲取鏈接並將其下載到本地驅動器的類。該程序應該支持從http \ https \ ftp鏈接下載,而且在我的工作中,我有一個專用的代理(沒有身份驗證)。 主系統是通過asp.net下載的,每個學生都可以請求下載文件。 所有文件都是從50MB到無限大小的非常大的文件,因此它應該是一個快速下載程序。使用代理的多線程文件下載器c#
這是我currentcode:
public void DownloadLink(string link)
{
string filename ;
try
{
WebClient wc = new WebClient();
Uri downloadLink= new Uri(link);
wc.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCompleted);
filename = link.Substring(link.LastIndexOf("/") + 1);
Console.WriteLine("Downloading File" + filename);
wc.DownloadFileAsync(downloadLink, filename);
}
catch (Exception i)
{
System.Console.WriteLine ("Failed" + i.ToString());
}
}
private void DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
Console.WriteLine("Download Completed");
}
這裏是我的問題: 1.How可以實現同時下載? 2.如何設置我的代理Webclient? 3 WebClient.DownloadAsync支持https & ftp還是應該處理它? 4.有沒有辦法實現下載更快?我看到幾個實現,包括HttpWebRequest,HttpWebResponse & Streams。它有更好的性能嗎?
嗨,我沒有與帶寬問題,你能解釋我更多的TPL或給我例如參考? – RonenIL 2011-04-05 18:07:49