vb.net中循环的多线程
我正在使用VB.net通过交互来帮助求解一些方程。使用一个线程需要很长时间,所以我希望有人能帮助我多线程处理代码。下面是一个我试图实现的过于简化的例子 公开课表格1vb.net中循环的多线程,vb.net,multithreading,for-loop,Vb.net,Multithreading,For Loop,我正在使用VB.net通过交互来帮助求解一些方程。使用一个线程需要很长时间,所以我希望有人能帮助我多线程处理代码。下面是一个我试图实现的过于简化的例子 公开课表格1 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim Evens(6) As Integer Dim Odds(6) As Integer For i = 0 T
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim Evens(6) As Integer
Dim Odds(6) As Integer
For i = 0 To 6
Evens(i) = i * 2
Odds(i) = i * 2 + 1
Next
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Evens = RunLoop(Evens, 0, 6) 'The best way to Multi thread this part please.
Odds = RunLoop(Odds, 0, 6)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
For i = 0 To 6
TextBox1.AppendText(Evens(i) & vbNewLine)
TextBox1.AppendText(Odds(i) & vbNewLine)
Next
End Sub
Private Function RunLoop(Numbers() As Integer, Start As Integer, Last As Integer)
For i = Start To Last
Numbers(i) *= Numbers(i)
Next
Return Numbers
End Function
末级
我需要将过去的数据返回到主线程,这样我就可以比较每个线程的结果。我已经为需要从函数返回的数据创建了一个类
在每个for循环中花费的时间可以是不同的长度。您可以并行运行它们,只需注意执行的顺序并不重要。这个循环只保证迭代中的每一项都会完成,它们不会以任何特定的顺序发生 要用代码实现这一点,只需进行以下更改:
Private Function RunLoop(Numbers() As Integer, Start As Integer, Last As Integer)
'For i = Start To Last
' Numbers(i) *= Numbers(i)
'Next
'Run every iteration in the loop in parallel:
Parallel.For(Start, Last + 1, Sub(i) Numbers(i) *= Numbers(i))
Return Numbers
End Function
检查