重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Sub Main()
创新互联主营江川网站建设的网络公司,主营网站建设方案,成都APP应用开发,江川h5小程序开发搭建,江川网站营销推广欢迎江川等地区企业咨询
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() //启动多线程进程
Application.DoEvents
Next
End Sub
过程只需要1个,线程你要多少就需要创建多少,这个可以用循环来创建:
Dim Thd(99) As Thread
For i As Integer =0 to 99
Thd(i)=New Thread(AddressOf Start)
Thd(i).Start()
Next
如果你不需要保留这些线程的引用
那个数组也可以省略掉
直接在循环中(New Thread(AddressOf Start)).Start()就行了
---------------------------------------------------------------------------
代码不是在IDE中打的,可能有细微小错误
多线程操控同一个空间容易出现混乱,可通过SyncLock语句,将对空间的操作添加至lock语句内部,
Class simpleMessageList
Public messagesList() As String = New String(50) {}
Public messagesLast As Integer = -1
Private messagesLock As New Object
Public Sub addAnotherMessage(ByVal newMessage As String)
SyncLock messagesLock
messagesLast += 1
If messagesLast messagesList.Length Then
messagesList(messagesLast) = newMessage
End If
End SyncLock
End Sub
End Class
参考:
首先,你把你那些要运行很久的过程。尽量放在一个过程中。
因为线程只能是过程,不能使函数,没有返回值的。
然后,在某个事件下这样写:
**这里我假设你的那个很就的过程叫做 sub aaa()
调用如下:
Dim mythread As New System.Threading.Thread(AddressOf aaa)
mythread.Start()
***********
这样就是定义一个线程,名字叫 mythread,这个线程会运行aaa这个过程。
start 就是让线程运行。
很简单,调用API函数CreateThread
但是用vb做多线程的关键不在于创建,而是在于线程的不稳定,其不稳定是由于vb6自身的控件(如按钮、文本框等)不是线程安全的,怎么用你程序就可能怎么挂,所以这些个玩样儿在多线程中统统不能用。
那么UI的实现也得用API实现。这样vb的多线程才相对要稳定。但是vb的可视化开发的优势又荡然无存。
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