immerczeck
Messages postés27Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention28 juin 2008
-
23 déc. 2005 à 18:04
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
25 déc. 2005 à 00:09
Bonjour!
Voilà tout est dans le titre. Je viens tout juste de me mettre au c#, et je commence par un petit prog de serveur de messages.
J'ai une classe Form1, avec les méthodes main, Ecoute et gere. Je veux
que Ecoute et gere puissent accéder à une ArrayList qui contient les
infos des clients.
J'ai cru comprendre que les délégués faisait quelque chose dans ce
genre mais je n'ai pas très bien compris comment on les utilisait.
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 23 déc. 2005 à 21:16
Salut,
La méthode dont tu parles est utilisée pour des contrôles, pour l'utilisation de Control.Invoke. Voir le tuto (de Mx, si je me souviens bien) à ce sujet.
Ce qui n'est pas le cas d'ArrayList.
Dans ton cas, la réponse est dans la doc de la classe :
"ArrayList peut prendre en charge plusieurs opérations de lecture simultanées, tant que la collection n'est pas modifiée. Afin de garantir la sécurité des threads de ArrayList, toutes les opérations doivent être effectuées par l'intermédiaire du wrapper retourné par la méthode Synchronized."
immerczeck
Messages postés27Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention28 juin 2008 23 déc. 2005 à 21:55
Merci de votre prompte réponse.
Effectivement j'avais vu ce tuto mais j'arrivais pas à l'adapter à ma situation... on comprend pourquoi XD
J'ai effectué toutes les modifications nécessaires, remplacé clients par ArrayList Synchronized.
Mais là je tombe sur une erreur "[Mon Programme] ne possède pas de point d'entrée défini."
Une idée d'où cela pourrait provenir?
immerczeck
Messages postés27Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention28 juin 2008 23 déc. 2005 à 22:04
Apparemment c'est ma fonction Main() qui clochait. J'avais enlevé le static pour pouvoir faire référence aux méthodes de mes threads. Chose qu'apparemment, il ne faut pas faire :p
J'ai rectifié en lancant mes threads dans InitialiseComponent() et le prog se lance sans accroc.
Merci de votre aide!
PS: J'avais fait une autre app entretemps en contournant le problème : j'avais fusionné tant bien que mal les deux threads, mais cette solution est de loin la plus facile !
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 23 déc. 2005 à 22:04
Un programme doit possèder un point d'entrée, en l'occurence la méthode Main.
Vérifie dans les propriétés de projet qu'un point d'entrée est bien sélectionné : regarde l'option "Objet de démarrage".