我正在尝试使用并行处理来根据其内容分离数据。
在下面的示例中,我生成随机数,如果满足 a 条件,我想将它们存储到数据表中。
令我失望的是,顺序 for 的工作速度比并行快。
使并行工作更快可行吗?
Imports System.Random
Imports System.Threading
Imports System.Threading.Tasks
Public Class Form1
Public No As Integer = 5
Public DT(No) As DataTable
Public S(No) As String
Public StartTimer As DateTime
Private Sub ParrallelProc_Btn_Click(sender As Object, e As EventArgs) Handles ParrallelProc_Btn.Click
For j = 1 To No
DT(j).Rows.Clear()
Next
StartTimer = Now
For k = 1 To 10000
Parallel.For(1, No + 1, Sub(i)
Dim CurrentNo As String = CStr(Math.Round(Rnd() * 1000000, 0))
If CurrentNo.Contains(S(i)) Then DT(i).Rows.Add(CurrentNo)
End Sub)
Next
Dim Interval = Now.Subtract(StartTimer).TotalSeconds
End Sub
Private Sub SequentialProc_Btn_Click(sender As Object, e As EventArgs) Handles SequentialProc_Btn.Click
For j = 1 To No
DT(j).Rows.Clear()
Next
StartTimer = Now
For k = 1 To 10000
For l = 1 To No
Dim CurrentNo As String = CStr(Math.Round(Rnd() * 1000000, 0))
If CurrentNo.Contains(S(l)) Then DT(l).Rows.Add(CurrentNo)
Next
Next
Dim Interval = Now.Subtract(StartTimer).TotalSeconds
End Sub
End Class