【发布时间】:2014-05-08 13:33:59
【问题描述】:
我正在编写一个从 Active Directory 中提取计算机名称的应用程序。这个过程非常低。
Dim childEntry As DirectoryEntry
Dim ParentEntry As New DirectoryEntry()
Try
ParentEntry.Path = "WinNT:"
For Each childEntry In ParentEntry.Children
Dim newNode As New TreeNode(childEntry.Name)
Select Case childEntry.SchemaClassName
Case "Domain"
Dim ParentDomain As New TreeNode(childEntry.Name)
TreeView1.Nodes.AddRange(New TreeNode() {ParentDomain})
Dim SubChildEntry As DirectoryEntry
Dim SubParentEntry As New DirectoryEntry()
SubParentEntry.Path = "WinNT://" & childEntry.Name
For Each SubChildEntry In SubParentEntry.Children
Dim newNode1 As New TreeNode(SubChildEntry.Name)
Select Case SubChildEntry.SchemaClassName
Case "Computer"
ParentDomain.Nodes.Add(newNode1)
End Select
Next
End Select
Next
Catch Excep As Exception
MsgBox("Error While Reading Directories")
Finally
ParentEntry = Nothing
End Try
所以提问时间。
1.) 它会通过在另一个线程中运行此代码来加快进程吗?
2.) 如果是这样,我将如何去做? (请记住,我从未成功实现过多线程)
谢谢大家!!
【问题讨论】:
-
否 - 在单独的线程中运行不会使其执行更快(甚至可能更慢)。它会做的不是在搜索时冻结 UI。
标签: vb.net multithreading active-directory