Bonjour,
Voici ma procédure pour désérialiser un fichier pour retrouver l'arborescence d'une treeview :
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)
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
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
n'est appelé qu'une seule fois
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
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
Partager