多線程是用于處理復(fù)雜項(xiàng)目的
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站與策劃設(shè)計(jì),賓陽網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:賓陽等地區(qū)。賓陽做網(wǎng)站價(jià)格咨詢:18980820575
打個(gè)比方
你的主程序線程A中有個(gè)循環(huán),由于代碼是一行行走的,所以循環(huán)結(jié)束前下面的代碼無法運(yùn)行,而此時(shí)主界面的反應(yīng)就類似卡死的樣子,你點(diǎn)擊按鈕也沒有反應(yīng),因?yàn)橹骶€程在忙著循環(huán)呢,所以對(duì)按鈕的事件代碼要等待了,如果要避免這種情況,就要用到多線程,另開一個(gè)新線程專門用來執(zhí)行循環(huán)代碼,主界面就不會(huì)卡死了,只要在循環(huán)結(jié)束后將結(jié)果傳回主線程調(diào)用就可以了,再復(fù)雜點(diǎn)要涉及到委托,控制了
按你的要求其實(shí)你的代碼用不到多線程,只要把sleep放到兩段代碼中間就可以了。
新線程結(jié)束用thread.abort()
如果需要等待T2線程結(jié)束,那又何必開啟這個(gè)線程!!
直接:
Label1.Visible = True
setB()
MsgBox("d")
這不就是執(zhí)行完setB(),再執(zhí)行MsgBox("d"),多線程是多余的。
多線程的作用大多數(shù)也就用來同時(shí)執(zhí)行多任務(wù)而不用等待的。
用time控件啊,獲取threadstate后,按指定時(shí)間間隔規(guī)定向界面刷新,線程必須是全局變量
用一個(gè)有退出條件的無限循環(huán)的sub也行。
線程開始就觸發(fā)該過程,用無限循環(huán)來刷新狀態(tài),線程完成即退出無限循環(huán)。局部變量的線程也可以用這種方式。
不過用法要正確,否則會(huì)出問題。
你可以在timer前用if判斷網(wǎng)絡(luò)狀態(tài),
如斷開,可用
threading.Thread.Sleep(10000) ‘當(dāng)前線程掛起10秒
’可以開一個(gè)新線程去讀取脫機(jī)數(shù)據(jù)。
如連接,則繼續(xù)執(zhí)行。
補(bǔ)充:
dim i as integer
'超過100次退出,避免死循環(huán)
for i=0 to 100
try
'ping你的端口
if ‘ok
exit for
else
threading.Thread.Sleep(10000) ‘當(dāng)前線程掛起10秒
end
Catch ex As Exception
End Try
next
使用api
Private Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
我告訴你思路,你自己去實(shí)現(xiàn)。
建議你用“守護(hù)線程”的方式去做,這樣做對(duì)于你一個(gè)小任務(wù)來說更合適。首先,你要建立一個(gè)隊(duì)列,將所有下載任務(wù)放入隊(duì)列。注意,這個(gè)隊(duì)列必須是“線程安全”的,即兩個(gè)線程不會(huì)搶到同一個(gè)任務(wù)。然后只開10個(gè)線程。這些線程會(huì)從隊(duì)列中讀取任務(wù)。當(dāng)一個(gè)線程不能再從隊(duì)列中讀取任務(wù)時(shí),也就是隊(duì)列為空時(shí),退出。等所有線程都退出后,你的程序就結(jié)束了。
還有一種方法,叫“線程池”,也就是你說的方法,稍微復(fù)雜一點(diǎn):
指定一個(gè)變量,用來表示線程的數(shù)量。剛開始為0,每開一個(gè)線程+1。當(dāng)一個(gè)線程完成任務(wù)退出后,這個(gè)變量-1。直到所有任務(wù)都完成后,不再產(chǎn)生新線程。
文章名稱:vb.net+線程退出 c++線程已退出
瀏覽路徑:http://chinadenli.net/article28/dodccjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、標(biāo)簽優(yōu)化、關(guān)鍵詞優(yōu)化、微信公眾號(hào)、虛擬主機(jī)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)