重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先,你把你那些要运行很久的过程。尽量放在一个过程中。
创新互联建站专注于企业全网营销推广、网站重做改版、南乐网站定制设计、自适应品牌网站建设、H5场景定制、商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为南乐等各大城市提供网站开发制作服务。
因为线程只能是过程,不能使函数,没有返回值的。
然后,在某个事件下这样写:
**这里我假设你的那个很就的过程叫做 sub aaa()
调用如下:
Dim mythread As New System.Threading.Thread(AddressOf aaa)
mythread.Start()
***********
这样就是定义一个线程,名字叫 mythread,这个线程会运行aaa这个过程。
start 就是让线程运行。
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
这个线程对象一定有个完成时或者进行中的动作,你可以用AddHandler语句来将过程委托给ProcessChanged或者ProcessConpleted动作。
多线程就是这样的。界面线程是主线程,你这个Form_Load就是运行在主线程上的线程,而Thread1,Thread2是由主线程启动的。这个启动不是线性的。
主线程只是通知系统,请启动一个线程运行某某函数。
而哪个线程先运行完全在系统决定。甚至可能主线程执行到Thread1.Abort() ,Thread2.Abort()的时候这两个线程都还没有启动起来,所以你会遇到两个变量都是空值这种情况。