-
prob threads c#
Etudiant en IUT info deuxième année, nous développons un jeu en réseaux en c# avec Mono.
Le problème que nous rencontrons est que nous avons un thread par client coté serveur et que nous n'arrivons pas à les synchroniser.
Est t il possible de déclarer une variable qui soit visible par tous les threads, c'est à dire si un client change la valeur de cette variable (un boolean), tous les clients "voient" ce changement ?
Merci.
-
salut
tu peux utiliser les objets de synchronisation pour faire cela :)
Sinon, si tu dois mettre en place un moyen de synchroniser tes threads clients, il te faut faire un Thread Manager (par exemple)... et lui, ayant la connaissance de chaque thread, pourra toujours modifier un paramètre de ce thread :)
Sinon, tu peux passer dans chaque thread une reference sur un objet qui appartient au thread Principal.. et le consulté quand il y en aura besoin :)
The Monz, Toulouse
-
Hello,
Pour mieux comprendre le multithreading et la synchronisation en .net je te conseille de lire ça. Trés bon article.
-
avoir un thread par client coté serveur c'est se metre des batons dans les roues
-
Merci pour tous ces conseils, le dernier post me semble interessant et logique en fait.
L'article sur les threads est effectivement très complet.
-
Pb résolu
Merci pour vos réponses.
La solution a été de regrouper chaque Thread du client (côté serveur) par un thread global, les threads clients étant stockés dans un vecteur de thread. Ainsi, dès que voulu, il suffit de parcourir le vecteur de thread et "d'aborter" les thread client (par exemple lorsque l'un d'autre eux trouve une bonne réponse à la question du quizz)...
En espérant que ce post puisse aider ceux dans la même situation !!!
@+++