如何解决并行 ForEach 冻结最后一个元素
我使用 Parallel.ForEach 从字符串列表构建对象列表。这可以是 100000+ 个字符串。在构建最后几个对象之前,它可以快速而完美地工作。在 Parallel.ForEach 结束之前,循环冻结。当我为每个循环使用法线时,我没有这个问题。我也没有得到任何异常,我也没有遇到任何断点。
这是我的代码
Parallel.ForEach(files,Sub(currentFile As String)
Try
If Not currentFile.tochararray.First = "~" Then
Dim baseFile As New BaseFile(currentFile,Path.GetDirectoryName(currentFile))
If Not baseFile.SWDocMGrdocument.FileCorrupt Then
retVal.Add(baseFile)
Else
Debug.WriteLine($"Corrupt file {baseFile.FullFileName} skipped.")
End If
fileInfoWindow.Invoke(Sub()
fileInfoWindow.SetFileName(currentFile)
End Sub)
End If
Catch ex As Exception
Debug.WriteLine($"Error: {ex.Message}")
End Try
End Sub)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。