2013-01-03 109 views
2

這裏慢是當我點擊更新按鈕下載時間:Web客戶端在啓動時

  • 第一時間= 5秒
  • 之後的第一時間= 2秒

爲什麼要花費更多的時間第一次?沒有wc.Proxy = null;它第一次花了2分鐘,還有其他什麼減慢它?

Stopwatch sw = new Stopwatch(); 
sw.Start(); 
using (WebClient wc = new WebClient()) 
{ 
    wc.Proxy = null; 
    wc.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0"); 
    wc.DownloadFile("http://example.com/folder/file.txt",@"folder/files/file.txt"); 
} 
sw.Stop(); 
+0

難道是Web服務器需要一些時間來處理第一個請求,但它有一些數據緩存後可以更快速地響應? –

+1

[WebClient非常慢]的可能重複(http://stackoverflow.com/questions/6988981/webclient-is-very-slow) – Sameer

回答

1

的可能解決方案加速這個過程緩存。如果您下載的文件/數據的性質是靜態的,最好將它們緩存在您的網絡/應用程序服務器上。

另一種解決方案是在不同的UI線程中觸發下載過程,並且可能使用異步過程來釋放您的UI線程,以避免凍結應用程序UI。

給你一些參考,可能會有所幫助: