Bloqueio no campo ou variável local?

Depois que eu liisto pergunta comuma resposta de Marc ....

Eu às vezes vejo pessoas trancando em umlocal variável.

Este código está quebrado?

public void Do()
{
 object  o  = new Object();
 lock (o)
     {
      ...
     }
}

Acreditoobject o = new Object(); deveria estarlado de fora o método como umField.

Como cada thread está recebendo uma nova instância deo , haverá vários bloqueios.

O que estou perdendo aqui? Não deveria bloquear campos neste caso específico?

questionAnswers(5)

yourAnswerToTheQuestion