我給你一個簡單的思路:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、屯溪網(wǎng)站維護、網(wǎng)站推廣。
1,定義5個公共布爾變量,用來記錄5個線程的執(zhí)行情況
2,線程開始變量賦值假,執(zhí)行完畢或者異常退出賦值真
3,一直用一個定時器掃描5個公共布爾變量----------隨時知道狀態(tài)
你可以在timer前用if判斷網(wǎng)絡(luò)狀態(tài),
如斷開,可用
threading.Thread.Sleep(10000) ‘當(dāng)前線程掛起10秒
’可以開一個新線程去讀取脫機數(shù)據(jù)。
如連接,則繼續(xù)執(zhí)行。
補充:
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
用time控件啊,獲取threadstate后,按指定時間間隔規(guī)定向界面刷新,線程必須是全局變量
用一個有退出條件的無限循環(huán)的sub也行。
線程開始就觸發(fā)該過程,用無限循環(huán)來刷新狀態(tài),線程完成即退出無限循環(huán)。局部變量的線程也可以用這種方式。
不過用法要正確,否則會出問題。
多線程是用于處理復(fù)雜項目的
打個比方
你的主程序線程A中有個循環(huán),由于代碼是一行行走的,所以循環(huán)結(jié)束前下面的代碼無法運行,而此時主界面的反應(yīng)就類似卡死的樣子,你點擊按鈕也沒有反應(yīng),因為主線程在忙著循環(huán)呢,所以對按鈕的事件代碼要等待了,如果要避免這種情況,就要用到多線程,另開一個新線程專門用來執(zhí)行循環(huán)代碼,主界面就不會卡死了,只要在循環(huán)結(jié)束后將結(jié)果傳回主線程調(diào)用就可以了,再復(fù)雜點要涉及到委托,控制了
按你的要求其實你的代碼用不到多線程,只要把sleep放到兩段代碼中間就可以了。
新線程結(jié)束用thread.abort()