ACTIVE DIRECTORY PROGRESS BAR

ALEVALE 17/12/2013 14:49:14
#432196
Pessoal estou tentando carregar alguns dados do Active Directory junto com um progress bar, porém não estou conseguindo.
Segue anexo, se alguém puder dar alguma olhada eu agradeço

Sites de referencia:
http://msdn.microsoft.com/en-us/library/ms973834.aspx#dotnetadsearch_topic9
http://stackoverflow.com/questions/17793939/progress-bar-to-report-status-of-ad-search
KERPLUNK 17/12/2013 15:14:33
#432199


Public Sub StartSearch()
Dim rootEntry As DirectoryEntry = GetDirectoryEntry([Ô]OU=USERS,OU=PJUN,OU=AM,OU=PROD[Ô])

If Not IntegratedAuthentication Then
[ô] rootEntry.Username = UserID
[ô]rootEntry.Password = Password
End If

Dim searcher As New DirectorySearcher(rootEntry)
searcher.PropertiesToLoad.AddRange(PropertiesToLoad)
searcher.PageSize = PageSize
searcher.ServerTimeLimit = New TimeSpan(0, 10, 0)
searcher.Filter = [Ô](&(objectCategory=person)(objectClass=user))[Ô]

Dim queryResults As SearchResultCollection
queryResults = searcher.FindAll()

[ô]Dim queryResults As SearchResultCollection
RaiseEvent StartProgressBar(queryResults.Count)

Dim result As SearchResult
Dim resultCount As Integer = 0
For Each result In queryResults
RaiseEvent ResultFound(result)
UpdateProgress(queryResults.Count)
resultCount += 1
Next

RaiseEvent SearchCompleted(resultCount)
End Sub
ALEVALE 17/12/2013 15:42:01
#432202
Humm...não funcionou não....ele deu um erro

Erro:
Cross-thread operation not valid: Control [ô]ProgressBar1[ô] accessed from a thread other than the thread it was created on.

Dai eu alterei para:
Me.Invoke(DirectCast(AddressOf UpdateProgress, Action(Of Integer)), queryResults.Count)

Porém a progressbar nao funciona....nao altera nada...
KERPLUNK 17/12/2013 15:52:12
#432205
Você precisa mesmo que isso esteja dentro de uma thread? Não me parece necessário...
ALEVALE 17/12/2013 16:32:43
#432210
Na realidade não, só achei que seria a melhor solução, o que me importa é carregar a [Ô]progressbar[Ô] de acordo com a atualização do dados.
KERPLUNK 17/12/2013 17:04:08
#432211
1 - Veja se queryResults está retornando algo
2 - Use threads quando forem necessárias. Ao contrário do que se possa pensar, elas não deixam mais rápido, simplesmente tem a capacidade de rodar em paralelo, nada mais.
ALEVALE 17/12/2013 18:11:16
#432216
Sim o queryResults está funcionando perfeitamente.
Só não sei como alimentar a progressbar dessa forma, sem travar o form.
KERPLUNK 17/12/2013 18:18:59
#432218
Simplesmente faça todo o procedimento de maneira normal, sem usar uma thread.
Tópico encerrado , respostas não são mais permitidas