メインスレッドがファイルを読み取り、それを部分に分割するプロセスがあります。これらのパーツには、さらに処理が必要です。ダウンストリーム処理ができるだけ多くの CPU (または多くのコア) を利用できるように、利用可能なスレッドを利用したいと考えています。メイン スレッドから過剰なバックログを作成したくないので、使用可能な別のスレッドができるまで、メイン スレッドがキューに追加されるのを待機する必要があります。
VB.NET 4.0: Looking to execute multiple threads, but wait until all threads are completed before resuming , but they are waiting for all threads to complete , while I just need any threads to be availableのような多くの記事を目にします
これはTask Parallel Libraryで取り組むことができるものですか、それとも手動でスレッドを作成してスレッドプールを監視する必要がありますか?
Using Reader As New StreamReader(FileName)
Do
CurrentBlockSize = Reader.ReadBlock(CurrentBuffer, 0, BufferSize)
RunningBuffer &= New String(CurrentBuffer)
If RunningBuffer.Contains(RowDelimiter) Then
LineParts = RunningBuffer.Split(RowDelimiter)
For I As Integer = 0 To LineParts.Count - 1
If I < LineParts.Count - 1 Then
'Make synchronous call that blocks until'
'another thread is available to process the line'
AddLineToTheProcessingQueue(CurrentLine)
Else
RunningBuffer = LineParts(I)
End If
Next
End If
Loop While CurrentBlockSize = BufferSize
End Using