Ich habe 3 Threads, die innerhalb einer Schleife aufgerufen werden.Wie pausiere ich Schleife, während Multithreading lebt
For i As Integer = 0 To DG.Rows.Count - 1
Dim thread1 = New System.Threading.Thread(AddressOf processData)
Dim thread2 = New System.Threading.Thread(AddressOf processData2)
Dim thread3 = New System.Threading.Thread(AddressOf processData3)
If Not thread1.IsAlive Then
x1 = i
thread1.Start()
ElseIf Not thread2.IsAlive Then
x2 = i
thread2.Start()
ElseIf Not thread3.IsAlive Then
x3 = i
thread3.Start()
End If
Next
Wie pausiere ich die Schleife, während alle Threads leben? Was ich will, ist, wenn einer der Threads beendet ist, dann die Schleife fortsetzen und die (i), dann pausieren Sie die Schleife erneut, wenn es keine verfügbaren Threads gibt. Weil manchmal DG.Rows Artikel mehr als 3 sind.
Wollen Sie sagen, dass Sie drei Threads verwenden möchten, um die Zeilen so zu verarbeiten, dass die Zeilen 0, 3, 6 usw. von 'processData' verarbeitet werden und die Zeilen 1, 4, 7 usw. von 'processData2' verarbeitet werden 'und Zeilen 2, 5, 8 usw. von' processData3', aber nur drei Zeilen gleichzeitig? – Enigmativity
Ich möchte 3 Daten gleichzeitig verarbeiten, und Schleife anhalten, während Thread1, Thread2, Thread3 beschäftigt ist, dann Schleife fortsetzen, wenn ein Thread verfügbar ist –
Das ist immer noch nicht klar. Wie ordnen Sie jede Zeile jeder Verarbeitungsmethode zu? – Enigmativity