Ne faites pas cela. Envisagez d'utiliser un objet séparé entièrement pour conserver l'état du verrou, pas nécessairement l'objet que vous souhaitez protéger dans l'instruction lock. Je vous écris souvent du code (ok, pas souvent) comme ceci:
private static readonly object _locker = new object();
private static MyObject _object;
...
lock (_locker)
{
...
_object = new MyObject();
...
}
Il implique une sorte complètement différent du flux de programme que ce que vous regardez. lock() définit une section critique dans le code - vous ne l'utilisez pas comme un mécanisme de sécurité de thread polyvalent pour n'importe quel type d'objet (ce que je pense que votre intention est dans votre code?)
Cela semble être une mauvaise idée, pourquoi le feriez-vous? –
Vous devez marquer l'objet '_locker' avec le mot clé' readonly'. – Steven