Dupe:return statement in a lock procedure: inside or outsidePuis-je mettre une déclaration de retour dans une serrure
Le titre est un peu trompeur. Je sais que vous pouvez le faire, mais je m'interroge sur les implications de performance. Considérez ces deux blocs de code. (Pas de traitement d'erreur)
Ce bloc a le return
extérieur de la serrure
public DownloadFile Dequeue()
{
DownloadFile toReturn = null;
lock (QueueModifierLockObject)
{
toReturn = queue[0];
queue.RemoveAt(0);
}
return toReturn;
}
Ce bloc a la déclaration return
au sein la serrure
public DownloadFile Dequeue()
{
lock (QueueModifierLockObject)
{
DownloadFile toReturn = queue[0];
queue.RemoveAt(0);
return toReturn;
}
}
est-il une différence dans le code ? Je comprends que les différences de performance (le cas échéant) seraient minimes, mais je me demande spécifiquement s'il y aurait une différence dans l'ordre que le lock
se libère.
* Sûrement * cela a déjà été couvert? – annakata
Je n'ai pas pu trouver les résultats parce que je n'utilisais pas les bons termes de recherche avant. Oui, c'est une dupe. – DevinB