Dans un débogueur je "gelé" lors de l'exécution de cette ligne de code: lock (myvar)
Évidemment, quelqu'un d'autre détient myvar
. Cependant, je m'attends à ce que cette ligne myvar
devrait être libre. Donc, je veux savoir quelle partie du code détient myvar
(à partir d'un autre thread diffenetely). Comment puis je faire ça? Je sais quel fil le tient (parce que je n'ai qu'un autre fil) mais je ne sais pas où.comment résoudre: pourquoi je ne peux pas obtenir un verrou?
UPD résolu, j'ai oublié d'appeler Monitor.Exit(myvar)
après un Monitor.TryEnter(myvar)
Juste combien de déclarations de verrouillage que votre code ont ?? –
@AndrewBarber J'ai seulement une autre déclaration de verrouillage et je ne comprends pas comment il peut garder le verrou. Donc je veux m'assurer que dans le débogueur ce problème est là .... J'ai décidé d'ajouter Console.Writeln ("get lock") et Console.Writeln ("release lock") traçage ... – javapowered
Ceux 'Console. Writeline() 's sont assez chers et pourraient changer le timing. –