SpinLock und schreibgeschützte Felder

8

Lesen Sie einfach die MSDN-Seite über neue .NET 4.0 feature < a href="http://msdn.microsoft.com/en-us/library/system.threading.spinlock.aspx"> SpinLock und kann die Idee hinter der folgenden Aussage nicht verstehen:

  

Speichern Sie SpinLock-Instanzen nicht in schreibgeschützten Feldern.

Meine Gefühle, dass dies irgendwie mit Werttypspezifischen zusammenhängt, aber nicht sicher ist, wie genau und warum. Könnte jemand mehr Licht in diesen Punkt bringen?

    
sll 10.02.2012, 21:16
quelle

1 Antwort

13

Das zugrunde liegende Problem besteht darin, dass der C # -Compiler eine Kopie eines readonly -Wertypentypfelds erstellt, wenn Sie eine nicht statische Methode darauf aufrufen und diese Methode auf der Kopie ausführt - weil die Methode könnte haben Nebenwirkungen, die den Wert der Struktur ändern - was für readonly Felder nicht erlaubt ist.

Weitere Informationen finden Sie unter "Mutating Readonly Structs" .

    
BrokenGlass 10.02.2012, 21:26
quelle