【发布时间】:2020-01-19 14:46:20
【问题描述】:
我正在运行 Parallel.ForEach 作为任务。我想在满足某个条件时摆脱它。考虑如下:
Dim opt As System.Threading.Tasks.ParallelOptions = New System.Threading.Tasks.ParallelOptions With {
.MaxDegreeOfParallelism = My.Settings.ssUserMaxThreads}
Dim ttask = Task.Factory.StartNew(Sub()
Parallel.ForEach(filesList, opt,
Sub(rom As String)
ProcessROM(rom, romDS, ClassHash)
totalCount += 1
Debug.WriteLine("TotalCount: " & totalCount)
If totalCount > LimitedNumber Then
Debug.WriteLine("Limited number exceeded")
'What here?
End If
con.Invoke(CType(Sub()
ReportProgress()
End Sub, Action))
Application.DoEvents()
End Sub
)
End Sub)
Do Until totalCount > LimitedNumber
Application.DoEvents()
Loop
如果totalCount > LimitedNumber,我如何尽早摆脱Parallel.ForEach 或Task?
【问题讨论】:
标签: .net task break parallel.foreach