2
моя цель состоит в том, чтобыМногопоточность Начиная все темы сразу Динамически
- Проверить нити, если они что-то (initiallized, живой, на то, что когда-либо)
- Если они не добавляют столько потоков, как необходимо (до 5) до тех пор, пока все потоки запускаются
- Если запущены все потоки, перепроверить без потери в
count
вi-loop
- Кроме того, это трудно из-за того, как удалить нити из словаря, когда все нити используют один и тот же подраздел
Следующий код показывает все, то AllOtherThreads саб просто
Sub AllOtherThreads(ByVal i As Integer)
For z = 0 To 500
For q = 0 To 500
For w = 0 To 500
SomethingInvoked_Invoke(i, z, qt, wt)
Next
Next
Next
End Sub
Основной код
For i = 0 To 500
Recheck:
For izt = 0 To 2
If dictThread.Values(izt) Is Nothing Then
dictThread.Add("Thread" & izt.ToString, New Thread(New ParameterizedThreadStart(AddressOf AllOtherThreads)))
dictThread.Values(izt).Start(i)
GoTo nexti
ElseIf dictThread.Values(izt).IsAlive = False Then
dictThread.Remove(dictThread.Keys(izt))
В следующей строке, где ошибка происходит Thread is running or terminated; it cannot restart.
dictThread.Values(izt).Start(i)
GoTo nexti
End If
Next
System.Threading.Thread.Sleep(100)
GoTo Recheck
nexti:
Next
Какой вопрос вы хотели бы ответил? Вы спрашиваете, как запустить несколько потоков без их жесткого кодирования? – camerondm9
я укажу на них лучше –
Вам нужно всего лишь запустить поток один раз, который вы делаете при его создании. Нити не могут быть перезапущены, поэтому, если вы хотите снова запустить этот код, вам нужно будет создать новый поток. – camerondm9