Quel est le but de l'objet dans l'argument Lock. Voici un exemple:But de l'objet en argument de l'instruction Lock
public class TestThreading
{
private System.Object lockThis = new System.Object();
public void Process()
{
lock (lockThis)
{
// Access thread-sensitive resources.
}
}
}
... cet objet 'lockThis' passe-t-il quelque chose dans le corps du verrou. Pourquoi ne puis-je pas utiliser l'instruction Lock sans objet en argument.
Vous avez besoin de * une * variable qui garde la trace du thread qui possède le verrou et à quelle fréquence il a été entré. L'état de verrouillage. System.Object est un type d'objet apparemment inadéquat pour faire toutes ces choses, mais il est capable. Beaucoup de programmeurs ont soutenu que le .NET Framework devrait avoir un type dédié pour ce genre de variable pour apporter de la clarté. Vous pouvez en créer un: public class LockState: object {}. –
Merci. Cela aurait-il un sens si je transmettais "Thread.CurrentThread.ManagedThreadId" dans l'instruction lock à la place. – cembo
Ce serait désastreux. Vous feriez mieux d'étudier ceci ou le filetage va vous manger vivant. –