Bonjour,
On voit pas mal de problèmes liés au cross threading, et à chacun de ces problèmes, un rapide tour sur le tuto de ce site fait gagner un précieux temps. Mais comme tout bon tuto, il explique pas forcément grand chose...
(Soit A le thread principal et B le thread secondaire lancé par A)
On y apprend qu'on peut pas modifier la valeur d'un Win Form A à partir de B.
Mais (Quelques exemples) :
1/ A-t-on le droit de modifier un bool de A depuis B ?
2/ A-t-on le droit de lancer un Dispose() d'un objet de A depuis B ?
3/ A-t-on le droit de modifier un bool de B depuis A ?
4/ A-t-on le droit d'instancier une classe déclarée en A depuis B ?
Et plus généralement :
5/ Existe-t-il un truc bien complet qui explique ce qu'on a le droit de faire et de pas faire ? Je trouve nulle part de réponse précise à ce sujet... :(
Et si quelqu'un a le courage :
6/ Pourquoi le cross-thread est interdit, qu'est ce que ça change dans la machine interne de passer par un delegate ? Pourquoi la framework le fait pas tout seul ? (Comme sur la 1.x d'ailleurs)
Merci de vos lumières, ça va vachement m'éclairer. Je n'aime pas savoir faire un truc sans comprendre... :)
A+