|
发表于 2011-10-31 10:56:51
|
显示全部楼层
本帖最后由 sexfio 于 2011-10-31 11:21 编辑
tgy 发表于 2011-10-31 10:44 
显示窗体只是我写的例子,当然也可以不显示窗体,根据自己需要.
关于参数,只能通过线程参数传进去,如果需传 ...
哦,麻烦帮我看下,我改了下,我想实现的是
创立3个线程,0,1,2
每个线程导入一个参数,分别是0,1,2,然后每秒这个数+1
然后在主窗体创立一个MSFlexGrid1用于显示
每行MSFlexGrid1的第2列显示每秒+1后的结果,我这样改貌似不对,应该怎么改呢?最好帮我改成结构体的,我想导入多个参数,谢谢了~~~
'窗体
Private Sub Command1_Click()
Dim i&
MSFlexGrid1.Cols = 4: MSFlexGrid1.Rows = 1
For i = 0 To Val(Text1) - 1 'Text为创立的线程数
MSFlexGrid1.AddItem i: j = i
CreateThread 0&, 0&, AddressOf XXX, ByVal App.hInstance, 0&, 0
Next
End Sub
'模块
Public j&
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Function Delay(sSeconds As Long) '延时函数 Delay(毫秒)
Dim Begin As Long
Begin = GetTickCount
Do: DoEvents: Sleep 1
Loop Until GetTickCount - Begin >= sSeconds
End Function
Public Sub Main()
Form1.Show
End Sub
Public Sub XXX(ByVal df As Long) '线程函数
init df
'=====================================================================
j1 = j: j2 = j
Do
Form1.MSFlexGrid1.TextMatrix(j1 + 1, 1) = j2
j2 = j2 + 1
Delay 1000
Loop
'=====================================================================
CoUninitialize
End Sub
////////////////////////////////////////////////////////////////////////////////////////////////////////////
刚用了结构体
Public Type fio
index As Long
hInstance As Long
End Type
Private Sub Command1_Click()
Dim i&, ff As fio
MSFlexGrid1.Cols = 4: MSFlexGrid1.Rows = 1
For i = 0 To Val(Text1) - 1
MSFlexGrid1.AddItem i: j = i
ff.index = i: ff.hInstance = App.hInstance
CreateThread 0&, 0&, AddressOf XXX, ByVal ff, 0&, 0
Next
End Sub
结果提示类型不正确,CreateThread 的第4个参数是导入参数吧?类型不是any吗?为什么会不正确? |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|