VB2008(.net)百分跪求高手关于线程问题!

来源:百度知道 编辑:UC知道 时间:2024/06/17 16:36:40
假设这里有个带参数sub过程
sub aaa(byval b as string)
textbox1.text=b
end sub
一般不用控件直接声明线程一般是这样
Dim LeafThread As System.Threading.Thread
Dim LeafDelegate As System.Threading.ThreadStart
LeafDelegate = New System.Threading.ThreadStart(AddressOf aaa("你好"))) '这里是出错的,因为过程不能带参数(问题一) LeafThread = New System.Threading.Thread(LeafDelegate) '指定线程LeafThread运行对象为LeafDelegate
LeafThread.Start() '开始运行该线程

那么现在问题有二,答对任何一个问题就给分
问题1:刚才标记出错的那里,怎么样才能使它变成一个带参数的线程?目前我只能运行不带参数的线程,如何解决?
问题2:假设问题一解决了,又或者只是运行一个不带参数的线程,上面写的线程在窗体里是可以用的,但是在模块里用不了,因为模块里没有办法使用线程来修改窗体里控件的值,请问如何在模块的线程里修改窗体里控件的值

跪求!!
刚才没换好行,问题一标记那里后面是换行了的,像这样
LeafDelegate = New System.Threading.ThreadStart(AddressOf aaa("你好"))) '这里是出错的,因为过程不能带参数(问题一)
'↓新的一行
LeafThread = New System.Threading.Thread(LeafDelegate) '指定线程LeafThread运行对象为LeafDelegate

lzh7412

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
t1 = New Thread(AddressOf tt2)
Dim LeafDelegate As System.Threading.ParameterizedThreadStart
LeafDelegate = New System.Threading.ParameterizedThreadStart(AddressOf tt2)
t1.Start("你好")
End Sub
Public Sub tt2(ByVal s As Object)
MsgBox(s)
End Sub

问题1:刚才标记出错的那里,怎么样才能使它变成一个带参数的线程?目前我只能运行不带参数的线程,如何解决?

定义一个类,然后。。。以前的一个小联系

Public Class JobClass

Public Event JobFinished(ByVal JobNo As String)

Friend StrArg As String
Friend RetVal As Boolean

Sub DoJob()
MsgBox("StrArg=" & StrArg)
RetVal = True
RaiseEvent JobFinished(1)
End Sub

Public Shared Sub main()

Dim Jobs As New JobClass

Dim Thread1 As New Syste