1. 程式人生 > >unity + WebClient顯示下載速度,當前下載量,下載總量

unity + WebClient顯示下載速度,當前下載量,下載總量

在這資源更新的進度條顯示時

            using (WebClient client = new WebClient()) {
                sw.Start();
                client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
                client.DownloadFileAsync(new System.Uri(url), currDownFile);
            }

註冊上進度條下載的委託和下載完成的委託就可以了

在更新進度條的委託中可以得到下載的進度條和下載的總大小以及已經下載的大小。

用e.UserState可以取到傳入的引數,由於是下載檔案有可能下載多個但是更新進度條的方法都走的一個方法所以需要用UserState來取得對應下載任務的進度條。

下面貼一下這兩個委託的實現方法,我將WebClient簡單封裝了一下。

private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e) {
        //下載的總量
        PrecentData preData = new PrecentData();
        preData.total = string.Format("{0} MB / {1} MB"
, (e.BytesReceived / 1024d / 1024d).ToString("0.00"), (e.TotalBytesToReceive / 1024d / 1024d).ToString("0.00")); preData.precent = (float)e.BytesReceived / (float)e.TotalBytesToReceive; string value = string.Format("{0} kb/s", (e.BytesReceived / 1024d / sw.Elapsed.TotalSeconds).ToString("0.00")); preData.speed = value; Loom.QueueOnMainThread((param) => { NotificationCenter.Get().ObjDispatchEvent(KEventKey.m_evDownload, preData); }, null
)
; NotiData data = new NotiData(NotiConst.UPDATE_PROGRESS, value); if (m_SyncEvent != null) m_SyncEvent(data); if (e.ProgressPercentage == 100 && e.BytesReceived == e.TotalBytesToReceive) { sw.Reset(); data = new NotiData(NotiConst.UPDATE_DOWNLOAD, currDownFile); if (m_SyncEvent != null) m_SyncEvent(data); } }

要顯示下載百分比使用

string.Format("{0} MB / {1} MB", (e.BytesReceived / 1024d / 1024d).ToString("0.00"),  (e.TotalBytesToReceive / 1024d / 1024d).ToString("0.00"));

要顯示當前的下載速度

string.Format("{0} kb/s", (e.BytesReceived / 1024d / sw.Elapsed.TotalSeconds).ToString("0.00"));

相關推薦

unity + WebClient顯示下載速度當前載量下載總量

在這資源更新的進度條顯示時 using (WebClient client = new WebClient()) { sw.Start(); client.Download

初學Linuxgtk+glade一些控制元件的使用函式

連線glade gtk_init (&argc, &argv); GtkBuilder *builder; builder = gtk_builder_new (); gtk_builder_add_from_file (builder, "(路徑)檔名.glade"

Java運算子瞭解小老弟!

區域性:   在方法中 或 程式碼塊中定義的變數。   必須 初始化 後 才能使用。   在同一作用域內 不能宣告同名的變數。 識別符號命名規則:    語句成分命名。    1.字母、數字、下劃線、$ 組成;    2.不能以 數字開頭;    3.不能是java的

2019年序章——一位研究工作者的新年目標flag既是充滿又是憧憬(o゜▽゜)o☆

筆者寫本文的時候正好是2019年1月1日,所以在這裡向大家道聲祝福:2019!新年快樂! 筆者以前寫年度計劃的時候,一般會買一份新的檯曆,在上面寫下十條左右的願望(額,也就是flag~,畢竟願望很大一部分是要靠自己實現的),當檯曆隨著時間的流逝而一頁頁離開,一點點變薄,匆匆地,一年的尾聲

多媒體播放器 VLC 釋出 3.0.6載量已突破 30 億大關

   一年一度的國際消費類電子產品展覽會(CES)今年在美國拉斯維加斯舉辦,不過現在快已接近尾聲。而就在昨日,自由軟體多媒體播放器 VLC 在 CES 的展位上,其記錄當前下載量的計數器顯示 —— VLC 已達成 30 億次下載的里程碑。 據透露,其中大約有 25% 的下載量

Latex設定字型大小加粗劃線變斜體

Latex 設定字型大小命令由小到大依次為:\tiny\scriptsize\footnotesize\small\normalsize\large\Large\LARGE\huge\Huge使用方法,例如:\large{這是大號字型}  加粗:\textbf{文字}數學模式

C#獲得計算機名當前登入使用者名稱Ip地址 .

在.NET中獲取一臺電腦名,IP地址及當前使用者名稱是非常簡單,以下是我常用的幾種方法,如果大家還有其他好的方法,可以回覆一起整理:         1. 在ASP.NET中專用屬性:         獲取伺服器電腦名:Page.Server.ManchineName         獲取使用者資訊:Pa

Oracle當前日期的個半月例如今天的個半月是十月一號到十月十五號如果是上半月顯示本月的半月

CREATE OR REPLACE FUNCTION FUN$_GETMONTH RETURN VARCHAR2 IS   /*************************** *用途:根據當前日期,判斷是上半月還是下半月,如果是下半月,則顯示下月的上半月(20180

python實現檔案下載(包含進度條顯示檔案大小顯示下載速度顯示)

不多說了,直接上程式碼記錄: #!/usr/bin/lgy #-*-coding:utf-8-*- import urllib2,threading from PyQt4.QtGui import * from PyQt4.QtCore import * from pu

jQuery基礎(動畫篇 animate顯示隱藏淡入淡出拉切換)

app 必須 條件 工作 函數 我們 淡入淡出 延時 button 1.jQuery中隱藏元素的hide方法 讓頁面上的元素不可見,一般可以通過設置css的display為none屬性。但是通過css直接修改是靜態的布局,如果在代碼執行的時候,一般是通過js控制元素的

new Date()在安卓正常在IOS顯示不出來

顯示 安卓 strong fine def 不支持 返回 方案 nbsp 之前用JS在做一個倒計時,在PC端和安卓下面顯示沒問題,在IOS下顯示不出來。 查找了資料,鏈接我忘記了。 原因是:   在IOS下,new Date("2000-2-22 00:10"),返回的

ThinkPHP分類查詢(獲取當前分類的子分類獲取父分類一級分類)

lod ids implode logs emp str foreach reac 初始化 獲取指定分類的所有子分類ID號 //獲取指定分類的所有子分類ID號 function getAllChildcateIds($categoryID){ //初始化ID數組

怎麽點擊一個按鈕顯示當前的時間用js 實現

按鈕 點擊 asc utf script doctype tex 當前 一個 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>

JQ 移動端返回頂部滑動時顯示返回按鈕往上滑動時隱藏返回按鈕

hid 獲取 scroll var 返回 向上 區域 手勢 默認 returnTop:function(){ //預定義返回頂部的html代碼,它的css樣式默認為不顯示 var gotoTop_html = ‘<div class

Python獲取下載速度顯示進度條

locks rom art 回調 filename bytes sleep format == #!/usr/bin/python3 # -*- coding:utf-8 -*- import sys import time from urllib impo

下載google的crx插件360極速瀏覽器安裝postman插件安裝crx顯示必須以application/x-chrome-extension類型提供

nload googl cati start logs 分享 load html ogl 1.下載crx插件 Start | Chrome Extension Downloaderhttps://chrome-extension-downloader.com/ 2.安裝

Nginx並發數、每秒連接數、下載速度限制防攻擊殺手鐧

意思 bsp p s address ket agen 將在 hit sun 1.限制IP訪問頻率:HttpLimitZoneModule 限制並發連接數實例limit_zone只能定義在http作用域,limit_conn可以定義在http server location

基於opencv對視頻的灰度變換高斯濾波canny邊緣檢測處理同窗體顯示並保存

rmi 其他 AS info ali 利用 測試結果 14. 中間 如題:使用opencv打開攝像頭或視頻文件,實時顯示原始視頻,將視頻每一幀依次做灰度轉換、高斯濾波、canny邊緣檢測處理(原始視頻和這3個中間步驟處理結果分別在一個窗口顯示),最後將邊緣檢測結果保存為一個

解決jqGrid中當前頁一直顯示為0的問題

UNC param ble style cti function 得到 http table 項目中,經常會見到使用 jqGrid 進行一些數據的列表展示,而且使用起來也比較方便。但是有時會遇到一些奇怪的問題,比如前幾天我就遇到了在使用 jqGrid 時,當前頁一直