大體設想了兩種更新方式,以下所示:html
一種簡單暴力,直接請求靜態資源服務器上的文件服務器
第二種考慮了網絡傳輸不穩定時,中斷的狀況。再次啓動更新時會檢測本地文件下載多少了,而後接着上次中斷的位置繼續下載。網絡
更新過程就如同平時你們使用軟件更新的過程同樣,客戶端程序啓動,檢測到更新,啓動更新程序,客戶端關閉,更新程序下載更新包,下載完成後進行解壓,覆蓋本地客戶端文件,更新程序啓動客戶端,客戶端啓動,更新程序關閉。異步
主要使用WebClient類及HttpWebRequest類spa
1.WebClient.DownloadFileCompleted事件:異步文件下載操做完成時發生。.net
備註:設計
每次異步文件下載操做完成後,將引起此事件。經過調用啓動的異步文件下載 DownloadFileAsync 方法code
AsyncCompletedEventHandler是此事件的委託。htm
AsyncCompletedEventArgs類爲事件處理程序提供事件數據blog
示例:
2.WebClient.DownloadProgressChanged事件:在異步下載操做成功轉換部分或所有數據時發生。
備註:
每當異步下載取得進展時,就會引起此事件。
DownloadProgressChangedEventHandler是此事件的委託
DownloadProgressChangedEventArgs類爲事件處理程序提供事件數據
使用如下方法之一啓動下載時,引起此事件:
DownloadDataAsync 從資源下載數據並返回Byte[]數據
DownloadFileAsync 將數據從資源下載到本地文件
OpenReadAsync 從資源返回數據
3.DownloadProgressChanged事件:使用DownloadProgressChangedEventArgs類 實例化爲e
e.TotalBytesToReceive 從WebClient數據下載操做獲取的字節總數
e.BytesReceived 獲取一次接收的字節數
e.ProgressPercentage 獲取異步任務進度百分比
e.UserState 獲取惟一的用戶狀態
抱歉剛剛沒寫完就傳上來了,被同事拉回家了。。。。。。
出處:https://blog.csdn.net/Yl12fh/article/details/81033295