-
Rebonjour !
J'aurais encore une question, � la suite de la discussion sur ce post.
J'aimerais, une fois que le thread que j'ai lanc� est termin�, modifier des �l�ments dans ma fen�tre principale.
J'ai d'abord essay� en le faisant � la fin de ma fonction executeReceip(), mais l� il me dit � l'ex�cution que je n'ai pas le droit de le faire.
Sinon j'ai essay� avec la fonction myThread->Join(), mais l� mon thread principal est bloqu� et je ne peux plus interagir avec ma fen�tre.
Y aurait-il une solution ? Merci pour vos r�ponses ^^
-
Hors de .Net, je connaissais la m�thode: PostMessage().
Dans .Net, ce m�canisme est cach�, donc je ne vois pas trop.
Au pire, tu peux toujours faire un timer qui regarde si le thread est termin� toutes les X secondes... (en appelant Join() avec un timeout nul).
Mais je vois aussi que d'apr�s l'aide, Join() reste un minimum compatible avec une boucle de messages. Mais je ne sais pas exactement � quel point...
-
Quand il faut interagir avec des composants graphiques, il faut toujours le faire dans le thread qui a cr�� ces composants graphiques. Heureusement, .NET fournit des outils pour nous simplifier la vie.
http://msdn.microsoft.com/en-us/library/zyzhdc6b.aspx
-
Je crois que tu viens de trouver le Graal. Merci!
-
Merci pour ces r�ponses !
J'ai utilis� la m�thode du Timer, c'�tait plus simple � impl�menter je trouvais, m�me si c'est probablement pas la plus �l�gante ;-)
Ca marche nickel en tout cas, merci !
-
Franchement, plus simple que Invoke() ?? Ca m��tonnerait
Timer ?? Le quel, il y a toute une palanqu� de timer diff�rents.
Je te conseil tr�s tr�s vivement de revoir l'utilisation de la m�thode Invoke, et de l'adopter.
Et plus �l�gante donc plus maintenable, beaucoup mais alors beaucoup plus simple que n'importe quel timer.