Bonjour,

Voici ma procédure pour désérialiser un fichier pour retrouver l'arborescence d'une treeview :
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
   Private Sub ChargeTreeView(ByVal TreeView As TreeView, ByVal FileName As String)
 
        Dim fichier As New FileStream(FileName, FileMode.Open)
        Dim serialiser As New BinaryFormatter
 
 
        ListeNoeuds = serialiser.Deserialize(fichier)
 
        With TreeView
            For Each node As TreeNode In ListeNoeuds
                .BeginInvoke(New TN_Delegate(AddressOf .Nodes.Add), New Object() {node})
            Next
        End With
 
        fichier.Close()
    End Sub
Donc en fait, j'ai passé cette procedure en thread. Mais le poroblème c'est que comme le fichier est gros (et oui car j'ai comme mm pres de 50 000 noeuds à désérialiser), l'interface utilisateur se bloque pendant un cours instant qui est de 7 secondes (temps pour effectuer la désérialisation)

J'ai essayer en passant l'ajout des noeuds en beginupdate mais rien a faire ca bloque toujours !!!

PS: Comme je n'ai qu'un seul noeud racine, le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 For Each node As TreeNode In ListeNoeuds
                .BeginInvoke(New TN_Delegate(AddressOf .Nodes.Add), New Object() {node})
            Next
n'est appelé qu'une seule fois

Aidez moi car vraiment c'est très embétant de bloquer toute l'application sans meme pouvoir dire à l'utilisateur que ca charge...

Thanks ALL