Passer des paramètres à un Thread ? [Résolu] [C#] - C#/.NET managed - Programmation
Marsh Posté le 21-06-2004 à 14:54:01
Code :
|
Marsh Posté le 21-06-2004 à 15:49:04
Merci beaucoup, je trouve ça effectivement plus clean, moins bricolage du dimanche avec Leroy Merlin.
Par contre, désolé d'être pointilleux (et ignorant ), mais pourrais tu m'expliquer ce que tu appelles 'delegate' ?
Parce que je connais la classe Delegate, mais tu n'y fais pas référence . Donc j'apprécierais bien une petite explication .
Merci d'avance
Marsh Posté le 21-06-2004 à 17:20:28
Bon, après une brève recherche sur le net, les explications que j'ai pu trouver étaient toutes de cet ordre :
Citation : En C# on retrouve la possibilité de définir des signatures de fonctions. C'est à dire, on peut préciser par exemple qu'une méthode prends en paramète une méthode de type void et prenant deux paramètres entiers. On passe en fait l'addresse de cette fonction. |
Ca correspond bien à l'idée que j'en avais au travers de la courte définition de msdn :
Citation : la classe Delegate représente un délégué qui est une structure de données référençant une méthode static ou une instance de classe et une méthode d'instance de cette classe. |
Malheureusement, vu que tu n'utilises aucun delegate à proprement parlé (pas d'utilisation du mot clé 'delegate') je n'ai pas réussi à comprendre pourquoi tu définis ta solution comme "utiliser un delegate" . On retrouve effectivement le concept du delegate lors de l'appel à ThreadStart, mais cela reste commun à tout usage aux threads .
Je suis bien conscient qu'une longue explication serait laborieuse à écrire , donc vu que je n'ai pas de cours de C#, si tu avais ne serait-ce qu'un ptit lien ça me renderait service .
En tout cas, merci de ton intérêt
Marsh Posté le 21-06-2004 à 20:01:06
t'as rien à déclarer.
dans le cas qui nous intéresse, le constructeur de Thread attend un delegate void ThreadStart(); (une fonction qui retourne void)
et bien tu lui donne ! tu as un objet avec une méthode qui satisfait ce prototype et vlan new ThreadStart( instance.méthode) tu instancie un Delegate d, tel que d() <-> instance.méthode()
Marsh Posté le 21-06-2004 à 14:33:46
Bonjour,
Je voudrais savoir si il existe une façon de faire "officielle" prévue par Microsoft pour passer des paramètres à un thread . Bien évidemment, ces paramètres sont connus avant le lancement du thread.
J'ai déjà pu lire différentes solutions, mais aucune n'est basée sur une classe et/ou méthode prévue à cet effet par Microsoft .
Il n'y aurait donc pas de solution plus "propre" que la Hashtable faisant correspondre les thread avec les paramètres qui leur sont destinés ?
N'hésitez pas à demander plus de précision si je n'ai pas été assez clair.
Merci d'avance
Message édité par HannibAlBundie le 24-06-2004 à 09:46:21