-
Problème de thread
Bonjour, j'ai un problème au niveau des thread,
le niveau est pas excellent mais j'aimerai savoir pourquoi quand je créé un thread et que je lance mon application, il ne veut pas (dans mon thread) faire un
Code:
chk.checked = false
en fait je fais des traitements dans un thread, et pendant mon traitement, je veux informer l'utilisateur de "où ca en est". Et à chaque étape de mon traitement je check des checkbox, mais il me met le message
"Opération inter-threads non valide : le contrôle 'chkcnxLdap' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé"
Alors comment faire pour lui dire que ce thread s'occupe également de checker ces checkbox.
Merci d'avance
-
En dotnet, un thread ne peut modifier que les composants qu'il a créé.
Or quand tu lances ta fenêtre, un thread est créé pour gérer toute ta fenêtre et les composants qui y sont déposés.
Maintenant "l'astuce" pour permettre à un autre thread de modifier l'état de composants qui ne lui appartiennent pas est d'utiliser Invoke.
Cela va permettre de donner la main au thread principal pour exécuter une méthode donnée.
http://faqcsharp.developpez.com/?page=form#form_thread
-
j'ai essayer de faire avec ça mais ça ne m'arrange toujours pas
si quelqu'un a une autre idée...un truc propre à VB .net?
merci quand même au fait
-
Je te rassure, ce n'est pas quelque chose qui est propre à C#,c'est propre à Dotnet.
Et à ma connaissance, c'est la seule solution possible.
-
oui je pense bien que c'est du .net, je le sais. Et si c'est la seule solution, je me repecnherai dessus mais là je me concentre sur autre chose