VB.Net 如何将某个Sub单独在新的线程中运行
我的代码里有一个Sub要进行非常多运算,运行时严重影响其他代码的执行,导致比较严重的卡顿所以我想用多线程,让那个Sub单独一个进程运行我用的是Vs2010,网上找的多线程...
我的代码里有一个Sub要进行非常多运算,运行时严重影响其他代码的执行,导致比较严重的卡顿
所以我想用多线程,让那个Sub单独一个进程运行
我用的是Vs2010,网上找的多线程创建的代码像
Dim Thread1 As New System.Threading.Thread(AddressOfTasks.SomeTask)
都提示错误,请问正确代码要怎么写?
还有我的Sub是有传输几个值如Public Sub CountProbability(ByVal Type As Integer),而创建线程好像Sub名后不能带括号,这又该如何解决? 展开
所以我想用多线程,让那个Sub单独一个进程运行
我用的是Vs2010,网上找的多线程创建的代码像
Dim Thread1 As New System.Threading.Thread(AddressOfTasks.SomeTask)
都提示错误,请问正确代码要怎么写?
还有我的Sub是有传输几个值如Public Sub CountProbability(ByVal Type As Integer),而创建线程好像Sub名后不能带括号,这又该如何解决? 展开
2个回答
展开全部
dim td1 as Thread=New Thread(New ParameterizedThreadStart(sub名称),
td.Start(参数obj)
参数obj ,如果比较多,最好封装到一个类中,然后,到线程中,在强制转为你的类。
sub CountProbability(para as object) //没试过能不能直接写参数。
dim bb as 参数类`=参数obj 或者 para
end sub
td.Start(参数obj)
参数obj ,如果比较多,最好封装到一个类中,然后,到线程中,在强制转为你的类。
sub CountProbability(para as object) //没试过能不能直接写参数。
dim bb as 参数类`=参数obj 或者 para
end sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要的是委托线程。
线程可以接受object[]参数。
线程可以接受object[]参数。
更多追问追答
追问
请问具体要怎么写?能给个示例么?
追答
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim th As New Threading.Thread(New System.Threading.ParameterizedThreadStart(AddressOf threadsub))
Dim th1 As New Threading.Thread(New System.Threading.ParameterizedThreadStart(AddressOf Invokesub))'如果要用的是控件的参数,需要委托。
th1.Start({20, TextBox2})
End Sub
Public Delegate Sub Dgsub(obj As Object)
Public Sub Invokesub(obj As Object)
Dim dg As New Dgsub(AddressOf threadsub)
Me.Invoke(dg, obj)
End Sub
Private Sub threadsub(obj As Object)
If obj.GetType.Name.EndsWith("[]") Then
'多参数
Dim arg As Object() = obj
If arg.Count = 2 Then '2个参数
End If
Else
'单参数
End If
End Sub
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询