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?
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" .
Tags und Links .net c# multithreading .net-4.0 c#-4.0