Bonjour,
Dans la procédure éxecutée par les threads j'ai placé ça :
My.Settings.TestInteger += 1
TestInteger est un Integer qui vaut 0 au départ.
Je lance 10 Threads et à la fin, TestInteger vaut toujours moins que le nombre de thread.
j'en conclue que, grosso modo, deux Threads ont lu la valeur (copié ?) par exemple "1" un des deux fini et passe le TestInteger à 2 et l'autre fait de même, sans se rendre compte qu'entre temps la valeur a bougée.
Il (re)mets donc aussi TestInteger à 2.
Je ne cherche pas de solution au problème, je la connais (bloc Sync Lock etc) mais MSDN Indique que my.Settings est Thread Safe en plus la prop Synchronized de My.Settings et bien à True. Et j'ai le meme pb avec un instance de My.Settings obtenue avec la méthode "Synchronized".
Que veut donc dire thread safe ici si alors qu'un thread manipule l'objet un autre peut aussi le faire. Juste que cela ne léve pas d'exception Ex DeadLock.
Si qq a une tite explication...
Partager