首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程状态

线程状态
EN

Stack Overflow用户
提问于 2013-07-29 15:30:59
回答 1查看 67关注 0票数 1

我在我的应用程序中使用了一个多线程概念。

代码语言:javascript
复制
 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个Id,我如何知道所有10个线程是否已经完成。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-29 15:38:37

你一个接一个地开始和加入这个线程。这也许不是你的意图。如果您将其保持为创建单个线程的方式,则等待它完成,然后才继续到下一个元素。

我会尝试以下方法:对于每个线程,将其添加到一个列表或数组中,在for all /Next语句之后,您可以使用属性加入它们,我猜是JoinAll()

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17928079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档