2015-08-13 4 views
0

Я пытаюсь запустить 3 потока за раз, но каждый раз, когда я запускаю это, я получаю все 6 потоков, работающих одновременно. Как я могу убедиться, что этого не произойдет?Запуск трех разных потоков за один раз

Dim iRisks() As String = {"$70"} 
    Dim allTicks() As String = {"1.0", "1.1"} 
    Dim iTimes() As String = {"210", "220", "240"} 

    For Each iRisk In iRisks 
     For Each iTime In iTimes 
      For Each eachTick In allTicks 
       Dim iThread1 As New Threading.Thread(New Threading.ParameterizedThreadStart(AddressOf FindStats)) 
       iThread1.Start(eachTick & "|" & iTime & "|" & iRisk) 
      Next 
     Next 
    Next 
+1

Используйте 'Task' и' WhenAll' вместо потоков. – SLaks

+0

Плюс, что там заставляет думать, что будет работать только по три за раз? – BradleyDotNET

+0

можно было бы получить образец задачи WhenAll? – PaulWill

ответ

3

Вы нерест 6 темы одновременно: 1 * 2 * 3 = 6. Переосмыслите свою стратегию нападения на этот вопрос и запомните комментарий SLaks относительно Task и WhenAll.

Смежные вопросы