Bonjour,
J'ai un souci avec un composant par rapport au multithreading et au coté ThreadSafe des Control Winforms.
Si quelqu'un le connait, c'est pour le composant C1FlexGrid qui est un composant propriétaire, alliant un TreeView avec une Grid, permettant ainsi de donner un aspect hiérarchique à la Grid.
Ce composant est un peu le point central du projet, et mon problème est qu'il doit contenir un très grand nombre de données.
A titre informatif, il prend près de 45 minutes à remplir dans un contexte à thread unique. J'ai donc pensé à multithreader le remplissage, de manière à laisser la main à l'utilisateur, tout en remplissant ma structure.
Le souci est que le composant hérite de Control, interdisant ainsi son accès dans un autre thread que celui qui l'a créé.
J'ai bien essayé de créer l'objet dans le thread principal, mais ca m'oblige à faire des Invoke dans mon thread "remplisseur", ce qui gèle le thread principal.
J'ai également essayé de passer par un DataSource (à savoir un DataTable) ce qui n'est pas adapté à ma problématique, car dans le DataTable, je ne peux pas représenter la structure hiérarchique...
Je ne vois pas bien comment m'en sortir... et je suis preneur de tout conseil, méthode, astuce de conception...
Merci.
Partager