我有3個線程在循環中調用。如何在多線程處於活動狀態時暫停循環
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
如何在所有線程都處於活動狀態時暫停循環? 我想要的是,如果其中一個線程完成,然後繼續循環並獲取(i),然後再次暫停循環,如果沒有可用的線程。因爲有時DG.Rows項目超過3.
你是說你想用三個線程來處理行,例如,行0,3,6等由processData處理,行1,4,7等由processData2處理'和第2,第5,第8行等'processData3',但一次只有三行? – Enigmativity
我想同時處理3個數據,當thread1,thread2,thread3繁忙時暫停循環,如果可用線程繼續循環 –
這還不清楚。你如何爲每個處理方法分配每一行? – Enigmativity