Bonjour,
J'expérimente un peu les locks avec les threads et je m'interroge sur une chose.
Il est possible de locker des bouts de code pour éviter que deux threads y accède au même moment.
Mais est-il possible de locker un objet de façon à ce que personne ne peut l'utiliser tant qu'il est locké ?
Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public MethodA() { lock (obj) { Thread.Sleep(5000); } } public MethodB() { obj.DoSomething(); }
Est-il possible que la methodeB ne puisse pas executer "DoSomething" pendant 5 secondes car locker par la methodeA?
Je sais que si je lock l'objet obj dans methodeB, cela aura l'effet voulu mais on a pas toujours la possibilité d'accéder à ce code ou alors il peut être à tellement d'endroit....
Merci
Partager