首先,你把你那些要運(yùn)行很久的過程。盡量放在一個(gè)過程中。
創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、南樂網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為南樂等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
因?yàn)榫€程只能是過程,不能使函數(shù),沒有返回值的。
然后,在某個(gè)事件下這樣寫:
**這里我假設(shè)你的那個(gè)很就的過程叫做 sub aaa()
調(diào)用如下:
Dim mythread As New System.Threading.Thread(AddressOf aaa)
mythread.Start()
***********
這樣就是定義一個(gè)線程,名字叫 mythread,這個(gè)線程會(huì)運(yùn)行aaa這個(gè)過程。
start 就是讓線程運(yùn)行。
Private Sub setA()
msgbox("")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim t1 As Threading.Thread = New Threading.Thread(AddressOf setA)
t1.start
End Sub
這個(gè)線程對(duì)象一定有個(gè)完成時(shí)或者進(jìn)行中的動(dòng)作,你可以用AddHandler語句來將過程委托給ProcessChanged或者ProcessConpleted動(dòng)作。
多線程就是這樣的。界面線程是主線程,你這個(gè)Form_Load就是運(yùn)行在主線程上的線程,而Thread1,Thread2是由主線程啟動(dòng)的。這個(gè)啟動(dòng)不是線性的。
主線程只是通知系統(tǒng),請啟動(dòng)一個(gè)線程運(yùn)行某某函數(shù)。
而哪個(gè)線程先運(yùn)行完全在系統(tǒng)決定。甚至可能主線程執(zhí)行到Thread1.Abort() ,Thread2.Abort()的時(shí)候這兩個(gè)線程都還沒有啟動(dòng)起來,所以你會(huì)遇到兩個(gè)變量都是空值這種情況。