我有一个具有以下结构的列表对象
Dim urlMasterList As List(Of List(Of UrlObject) = AggregateUrls()
AggregateUrls
返回由名为UrlValidator
的函数使用的域定界URL列表。这里的任务是检查这些列表中的URL是否有效,如果没有将它们添加到已损坏的URL列表中。
目前,每个循环都有一个嵌套来处理这个列表列表
For Each hostDelimitedUrlList As List(Of UrlObject) In urlMasterList
For Each entry As UrlObject In hostDelimitedUrlList
If badUrls.Exists(Function(x) x.Url = entry.Url) Then 'badUrls is the master broken list
badUrls.Add(entry)
Else
Try
If Not UrlValidator(entry.Url) Then
badUrls.Add(entry)
End If
Catch ex As Exception
badUrls.Add(entry)
End Try
End If
Next
Next
我正在尝试找到一个很好的方法来对这个主列表进行线程化。我尝试了一个并行的foreach但是产生了一些奇怪的结果和重复的条目,即使将写入过程锁定到badUrls
此任务是否适合线程化,还是应该从不同角度处理?理想情况下,我认为方法如下:当一个完成抓取下一个资源并提供服务时,让主线程提供块(从主列表中的5个列表)到5个工作线程。我找不到任何类型的问题的示例或教程。