Je suis l'examen du code écrit par un expert, et alors que des dizaines de drapeaux rouges ont déjà surgi, je ne peut pas envelopper la tête autour de l'extrait de code suivant:
private void foo()
{
if (InvokeRequired)
{
lock (new object())
{
if (m_bar!= null)
Invoke(new fooDelegate(foo), new object[] { });
}
}
else
{
if(OnBazChanged != null)
OnBazChanged();
}
}
Qu'est-ce que le verrou(new object()) fais ici? Ne doit avoir aucun effet que ce soit, comme c'est toujours le verrouillage sur un autre objet, mais ce type de verrouillage est persistant dans le code, même en non-copier-collé des pièces. Est-ce certains cas spécial dans le langage C# qui est compilé pour quelque chose que je ne sais pas ou est le programmeur a simplement adopté certains de culte du cargo qui s'est passé à travailler il y a quelques temps?