Sub Main()
10年積累的成都做網(wǎng)站、成都網(wǎng)站設(shè)計、成都外貿(mào)網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有嘉峪關(guān)免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Dim thr As Thread
For Pi As Integer=0 To 4 //啟用5線程
MulParams =Pi vbTab sFile vbTab dFile vbTab 1 vbTab DelN vbTab cr vbTab cg vbTab cb vbTab IndexI
GlobalParamas(pi)=MulParams .Split(vbTab)
thr=New Thread(AddressOf MyMulThreadCaller)
thr.Start() //啟動多線程進(jìn)程
Application.DoEvents
Next
End Sub
我告訴你思路,你自己去實現(xiàn)。
建議你用“守護(hù)線程”的方式去做,這樣做對于你一個小任務(wù)來說更合適。首先,你要建立一個隊列,將所有下載任務(wù)放入隊列。注意,這個隊列必須是“線程安全”的,即兩個線程不會搶到同一個任務(wù)。然后只開10個線程。這些線程會從隊列中讀取任務(wù)。當(dāng)一個線程不能再從隊列中讀取任務(wù)時,也就是隊列為空時,退出。等所有線程都退出后,你的程序就結(jié)束了。
還有一種方法,叫“線程池”,也就是你說的方法,稍微復(fù)雜一點:
指定一個變量,用來表示線程的數(shù)量。剛開始為0,每開一個線程+1。當(dāng)一個線程完成任務(wù)退出后,這個變量-1。直到所有任務(wù)都完成后,不再產(chǎn)生新線程。
t1 = New Threading.Thread(AddressOf sDownFile) 你這句都沒代入?yún)?shù)啊。
改成這樣試試 t1 = New Threading.Thread(AddressOf sDownFile(參數(shù)1,參數(shù)2))
首先,是這樣的,你要是只是想實現(xiàn)類似迅雷下載列表的功能,還是可以的,但是,要是在展現(xiàn)也就是說界面上的樣子,也和迅雷的一樣,那你就要自己重繪窗體還要結(jié)合美工技術(shù)才能做出來。
如果只是實現(xiàn)功能,可以看一下的講解:
進(jìn)度條的問題:如果只是一個進(jìn)度條,那就不用多線程技術(shù),因為只控制一個進(jìn)度而已,如果向迅雷那樣,實時的顯示多個進(jìn)度,那就要多個線程了,一個線程控制一個進(jìn)度。
記錄文檔用何種方式:這個其實很簡單,如果,你要是有數(shù)據(jù)庫,那就最好存在數(shù)據(jù)庫中,方便存儲管理,網(wǎng)絡(luò)數(shù)據(jù)庫的話,有很多中,比如Mysql,oracle,本地數(shù)據(jù)有sqlite,access等,要是采用文件存儲的話,可以用ini文件,xml文件或是簡單點直接文本文件也是可以的。
下載完的記錄加載到已完成列表,沒下載完的記錄自動加載到下載列表
其實這個也不難的,在控制進(jìn)度的條的方法中,增加一if判斷,如果能100%就將信息加載到完成列表,在判斷中計數(shù)如果多次判斷都沒有進(jìn)度,就認(rèn)為文件現(xiàn)在失敗,就在現(xiàn)在信息添加到未完成列表。
以上只是分析實現(xiàn)過程,實例的話,那會很多,也很復(fù)雜,以上內(nèi)同純手打,如果您覺得滿意,請采納我的回答,也不枉費我這么認(rèn)真分析,多謝了。
當(dāng)前題目:vb.net多線程下載 vbnet多線程簡單
轉(zhuǎn)載來源:http://muchs.cn/article6/dohocog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站策劃、網(wǎng)站內(nèi)鏈、服務(wù)器托管、網(wǎng)站建設(shè)、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)