Corruption de données dans une TStringList

Signaler
Messages postés
121
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018
-
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
-
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

Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
"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.
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13
« 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.