Corruption de données dans une TStringList

cs_Gerard Messages postés 121 Date d'inscription jeudi 10 janvier 2002 Statut Membre Dernière intervention 7 août 2018 - 2 janv. 2013 à 10:51
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 - 2 janv. 2013 à 14:59
Bonjour,
Mon serveur est multi-thread, chaque client ayant son propre thread.
Toutefois, il y a des parties communes comme le classement des clients (ce sont des joueurs).
j'ai bien protégé l'accès de ces parties communes par des mutex mais je constate encore des corruptions dans les TStringList. Serait-il possible que les méthodes des TStringList soient perturbées si plusieurs joueurs appellent la même méthode en même temps?
Faudrait-il que je protège la méthode Add avec une critical section par exemple?

2 réponses

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
2 janv. 2013 à 11:18
"TStringList soient perturbées si plusieurs joueurs appellent la même méthode en même temps? "
Aparemment oui car sinon tu n' aurai pas de problèmes ...
L' utilisation d' une base de données (mySQL par exemple) résoudra tes problèmes de partage d' information.

a+




Composants Cindy pour Delphi
Faites une donation.
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
2 janv. 2013 à 14:59
« Faudrait-il que je protège la méthode Add avec une critical section par exemple? »


Il serait plus sûr d'utiliser des TThreadLists (des listes de pointeurs d'objet thread-safe) qui sont faits pour ça.
0
Rejoignez-nous