Bonjour a tous ,

J'ai réalisé une connexion à une LDAP qui m'affiche la liste des loggin Windows dans une Combobox.
Cette connexion + filtre freezaient mon application, j'ai donc décider de mettre ma sub dans un Background worker :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
TacheDeFond.RunWorkerAsync()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 Private Function TacheDeFond_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles TacheDeFond.DoWork

           'Connexion à l'annuaire LDAP
            Dim monEntryLDAP As New DirectoryEntry(CheminLdap, _
                                               NomConnectLdap, _
                                              PassConnectLdap)

            Dim maRecherche As DirectorySearcher = New DirectorySearcher(monEntryLDAP)
            'On filtre uniquement sur les utilisateurs
            maRecherche.Filter = "(objectclass=user)"
            'Utilisateurs à lister
            Dim lesUsers As DirectoryEntry

            'Affichage des utilisateurs listé
            Try
                'Boucle permettant a mon curseur d'avancer tant qu'il y a des resultats et d'implémenter ma ListView
                For Each result As SearchResult In maRecherche.FindAll
                    'On récupère l'entrée trouvée lors de la recherche
                    lesUsers = result.GetDirectoryEntry

                    'Remplissage du comboBox si et sulement si les valeurs login,nom sont renseignées
                    If lesUsers.Properties("sAMAccountName").Value <> "" _
                    And lesUsers.Properties("sn").Value <> "" Then
                        monTabResultLdap(0) = (lesUsers.Properties("sAMAccountName").Value) 'Login                      
                    End If
                Next

                Console.WriteLine(monTabResultLdap)
                Return monTabResultLdap

                'Fermeture de la connexion
                monEntryLDAP.Close()

            Catch ex As Exception
                MsgBox("Erreur lors de la connexion Ldap 1 : " & ex.Message & " " & ex.ToString)
                Return ""
                Exit Function
            End Try

        Catch ex As Exception
            MsgBox("Erreur lors de la connexion Ldap2 " & ex.Message & " " & ex.ToString)
            Return ("")
            Exit Function
        End Try

    End Function
Dans la mesure ou mon Interface est construite dans un autre threade je ne peut plus interagir avec ma combo box du début.

J'ai donc décidé de faire une fonction qui me retournerai un tableau incrémenté par les résultats de la requête ldap.

Mais je n'y arrive pas (voir ligne ne gras sur le code)

Voici comment je l'exploiterais si j'y arrive
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Private Sub TacheDeFond_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles TacheDeFond.RunWorkerCompleted
        'Quand le code d'arrière plan est terminé la procédure RunWorkerCompleted est exécutée.
        'On ajoute les données dans la combo box
        CB_LdapUser.Items.Add(monTabResultLdap)
        MsgBox("terminé")
    End Sub
Pourriez vous m'apporter de l'aide .
Mecri