
正文
vb.net线程带参数 vb6 线程
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VB2008(.net)百分跪求高手关于线程问题!
问题1:刚才标记出错vb.net线程带参数的那里,怎么样才能使它变成一个带参数的线程?目前vb.net线程带参数我只能运行不带参数的线程,如何解决?
定义一个类vb.net线程带参数,然后。。。以前的一个小联系
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 System.Threading.Thread(AddressOf Jobs.DoJob)
Jobs.StrArg = "ABCDEF"
Thread1.Start()
MsgBox("I'm here")
Thread1.Join()
MsgBox("Thread 1 返回" Jobs.RetVal)
End Sub
End Class
2。第二个我也没怎么玩过。不过Form 也是一个Class
vb.net线程带参数你写一些公共的方法。因该就可以阿
我现在没装那玩意儿vb.net线程带参数,不然就给各例子
相关问答
Q1: Vb.net 怎样操作有参数的多线程而且还是循环的。
Sub Main()
Dim thr As New Thread(AddressOf 循环)
thr.Start("a")
End Sub
Sub 循环(a() As String)
'这里随你干什么循环也行
For Each i As String In a
MsgBox(i)
Next
End Sub
看懂了吧 参数只能有一个 也可以不是数组,在a() As String的a后面去掉括号就行
Q2: VB.NET线程内调用带参数的方法异常
报错信息是什么?截图一下。
---------补充----------------
你这报错与线程应该关系不大吧,是调用COM不熟悉造成的,在项目属性里面有些相关配置你研究研究。
Q3: vb.net 线程 如何动态 address of 过程,即 "过程" 是可以用户动态传送的。
过程名是不可能作为参数使用的,想必你需要调用的过程是有限的,那么可以用一个变量来确定:
sub 过程名(p as integer)
Dim i As Threading.Thread
select case p
case 1
i = New Threading.Thread(AddressOf 过程1)
case 2
i = New Threading.Thread(AddressOf 过程2)
.........................
..........................
end select
i.start()
end sub
Q4: vb.net 怎样操作带参数的多线程
public class threadclass
{
public int a;
public void threadmethod()
{
//use a;
}
}
...
threadclass tc = new ....
tc.a = 10;
Thread t = new ThreadStart(tc.threadmethod);
t.Start
Q5: vb.net 如何传递类参数
线程结束后利用委托生成事件返回,线程应用包括传入和传出参数。
Public Delegate Sub ThreadCallback(value As ThreadResult)
Public Class Form1
Private WithEvents _th_1 As Thread_1
Protected Overrides Sub OnLoad(e As System.EventArgs)
Dim value As ThreadObject
value.Index = 1
Me._th_1 = New Thread_1(Me)
Me._th_1.Run(value)
MyBase.OnLoad(e)
End Sub
Private Sub Thread_1_End(sender As Object, e As ThreadEventArgs) Handles _th_1.ThreadEnd
Me.TextBox1.Text = e.Result.Text
End Sub
End Class
Public Class Thread_1
Public Event ThreadEnd(sender As Object, e As ThreadEventArgs)
Private _control As Control
Sub New(control As Control)
Me._control = control
End Sub
Public Sub Run(value As Object)
Dim th As New Threading.Thread(AddressOf ThreadProc)
th.Start(value)
End Sub
Private Sub ThreadProc(obj As Object)
Dim value As ThreadObject = CType(obj, ThreadObject)
Dim result As ThreadResult = Nothing
If value.Index = 1 Then result.Text = "测试"
Dim callback As New ThreadCallback(AddressOf ThreadInvoke)
_control.Invoke(callback, result)
End Sub
Private Sub ThreadInvoke(value As ThreadResult)
RaiseEvent ThreadEnd(Me, New ThreadEventArgs(value))
End Sub
End Class
Public Structure ThreadObject
Public Index As Integer
'Public Rect As Rectangle
End Structure
Public Structure ThreadResult
Public Text As String
'Public Rect As Rectangle
End Structure
Public Class ThreadEventArgs
Inherits System.EventArgs
Private _result As ThreadResult
Public ReadOnly Property Result As ThreadResult
Get
Return _result
End Get
End Property
Sub New(value As ThreadResult)
Me._result = value
End Sub
End Class
关于vb.net线程带参数和vb6 线程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








