2013-07-29 2 views
1

Я использую мульти понятие Нить в моих application.I я использую ниже кодСтатус для нарезания резьбы

Dim threadHistory As Thread = Nothing 
       For Each dRow As DataRow In sqlDS.Tables(0).Rows 
        GetPropertyBidHistory(dRow("ID")) 
        threadHistory = New Threading.Thread(AddressOf GetRowHistory) 
        threadHistory.Name = "Row" + dRow("ID")  
        threadHistory.Start(dRow("ID"))      
        threadHistory.Join() 
       Next 

    Public Sub GetRowHistory(ByVal ID As String) 
      '1 min code from web srvice 
    End Sub 

Если у меня есть 10 идентификаторам, как я могу знать, были ли завершены или не все 10 нитей.

+0

, что делать вы имеете в виду id '' ManagedThreadId'? –

+0

Я предполагаю, что он говорит о 10 разных идентификаторах базы данных –

+0

Его уникальный идентификатор для ex: от 1000 до 1010 – Sree

ответ

0

Вы начинаете и присоединяетесь к нити один за другим. Это, возможно, не ваше намерение. Если вы сохраните его таким образом, создайте один поток, дождитесь его завершения и только затем перейдите к следующему элементу.

Я хотел бы попробовать следующее: для каждого потока добавить его в список или массив, и после того, как для каждого/Следующего заявления Вы можете их Соединить все с собственностью, я думаю, JoinAll()

Dim List(Of Thread) allThreads = new List 
Dim threadHistory As Thread = Nothing 

       For Each dRow As DataRow In sqlDS.Tables(0).Rows 
        GetPropertyBidHistory(dRow("ID")) 
        threadHistory = New Threading.Thread(AddressOf GetRowHistory) 
        threadHistory.Name = "Row" + dRow("ID")  
        allThreads.Add(threadHistory) 
        threadHistory.Start(dRow("ID"))      

       Next 
Thread.JoinAll(allThreads) 'Blocks until all the threads finish 
+0

Как добавить JoinAll для списка – Sree

+0

Я изменил свой вызов JoinAll. У меня нет VS прямо сейчас, так что я делаю наизусть, извините –

+0

Спасибо за ваш ответ, я изменил его для каждого t как Thread In allThreads t.Join() Next – Sree

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