How can I convert this code to a Parallel.ForEach (WorkingDict is a HybridDictionary)
?
I've included my code below (Please don't judge my methods. This tool is my first attempt at classes, and I'm starting to believe I've made it fairly complex and laborious to work with).
Dim Cntr As Integer = 0, Bool1 As Boolean = False
For Each Obj As Object In BusLoadDict.Keys
Cntr = 0
Bool = False
bool1 = False
For Each Obj2 As Object In PNodesDict.Keys
For Each Obj1 As Object In DirectCast(PNodesDict.Item(Obj2.ToString), PNodeClass) _
.PNodeDescriptionDictOfDicts.Keys
If Obj1.ToString.Contains("forecast zone") Then
If DirectCast(DirectCast(DirectCast(PNodesDict.Item(Obj2.ToString), _
PNodeClass).PNodeDescriptionDictOfDicts, HybridDictionary).Item("forecast zone"), _
HybridDictionary).Contains(BusLoadDict.Item(Obj.ToString)) Then
Bool = True
Cntr += 1
If Cntr = 2 Then GoTo 1
End If
End If
If Obj1.ToString.Contains("aggregate") Then
Bool1 = True
If DirectCast(DirectCast(DirectCast(PNodesDict.Item(Obj2.ToString), _
PNodeClass).PNodeDescriptionDictOfDicts, HybridDictionary).Item("aggregate"), _
HybridDictionary).Contains(BusLoadDict.Item(Obj.ToString)) Then
Bool = True
Cntr += 1
If Cntr = 2 Then GoTo 1
End If
End If
Next
Next
1: If Bool = False Then
SBuilder.AppendLine("Bus PNode " & Obj.ToString & " was not mapped to the forecast zone pnodes.")
End If
If bool1 = False Then
SBuilder.AppendLine("Bus PNode " & Obj.ToString & " was not mapped to the aggregate pnodes.")
End If
Next
Here is the error code.
Error 1 Overload resolution failed because no accessible 'ForEach' can be called with these arguments:
'Public Shared Function ForEach(Of TSource)(source As System.Collections.Concurrent.OrderablePartitioner(Of TSource), body As System.Action(Of TSource, System.Threading.Tasks.ParallelLoopState, Long)) As System.Threading.Tasks.ParallelLoopResult': Data type(s) of the type parameter(s) cannot be inferred from these arguments. Specifying the data type(s) explicitly might correct this error.
'Public Shared Function ForEach(Of TSource)(source As System.Collections.Concurrent.Partitioner(Of TSource), body As System.Action(Of TSource, System.Threading.Tasks.ParallelLoopState)) As System.Threading.Tasks.ParallelLoopResult': Data type(s) of the type parameter(s) cannot be inferred from these arguments. Specifying the data type(s) explicitly might correct this error.
'Public Shared Function ForEach(Of TSource)(source As System.Collections.Concurrent.Partitioner(Of TSource), body As System.Action(Of TSource)) As System.Threading.Tasks.ParallelLoopResult': Data type(s) of the type parameter(s) cannot be inferred from these arguments. Specifying the data type(s) explicitly might correct this error.
'Public Shared Function ForEach(Of TSource)(source As System.Collections.Generic.IEnumerable(Of TSource), body As System.Action(Of TSource, System.Threading.Tasks.ParallelLoopState, Long)) As System.Threading.Tasks.ParallelLoopResult': Data type(s) of the type parameter(s) cannot be inferred from these arguments. Specifying the data type(s) explicitly might correct this error.
'Public Shared Function ForEach(Of TSource)(source As System.Collections.Generic.IEnumerable(Of TSource), body As System.Action(Of TSource, System.Threading.Tasks.ParallelLoopState)) As System.Threading.Tasks.ParallelLoopResult': Data type(s) of the type parameter(s) cannot be inferred from these arguments. Specifying the data type(s) explicitly might correct this error.
'Public Shared Function ForEach(Of TSource)(source As System.Collections.Generic.IEnumerable(Of TSource), body As System.Action(Of TSource)) As System.Threading.Tasks.ParallelLoopResult': Data type(s) of the type parameter(s) cannot be inferred from these arguments. Specifying the data type(s) explicitly might correct this error. C:\My Folder\Market Operations\VB.net\Market Validations Tool\Market Validations Tool\Market Operations Tool.vb 6361 9 Market Validations Tool