[Thread] Locker l'accès à un objet et non à un bout de code
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:
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