Mögliche Duplikate:
Warum ist lock (this) {. ..} schlecht?
In C # ist es üblich, lock (objLock) zu verwenden, wobei objLock ein Objekt ist, das einfach zum Sperren erstellt wurde.
Warum ist dies vorzuziehen, um (dies) zu sperren? Was sind die negativen Auswirkungen von lock (this) anders als eine Sperre für die Klasse selbst zu entfernen?
Da etwas anderes die Instanz sperren könnte, hätten Sie einen Deadlock.
Wenn Sie das Objekt, das Sie speziell für diesen Zweck erstellt haben, sperren, wissen Sie, dass Sie die vollständige Kontrolle haben, und nichts anderes wird es unerwartet blockieren.
Wenn Sie etwas public sperren, können sowohl die Klasse als auch eine andere Klasse versuchen, eine Sperre zu erhalten. Es ist einfach genug, ein Sync-Objekt zu erstellen, und immer vorzuziehen;
%Vor%