Gibt es eine C# BCL äquivalent zu Clojure-Atom, so etwas wie Atom<T>
die Atom Swap bietet/Semantik für Referenztyp T zurücksetzen? Da .NET unveränderbare Sammlungen enthält, kann ich diese Klasse wie in Clojure verwenden.C# Atom Referenztyp entspricht clojure Atom
0
A
Antwort
3
C# hat die Interlocked
Klasse:
https://msdn.microsoft.com/en-us/library/system.threading.interlocked(v=vs.110).aspx
Sie Swaps mit Interlocked.CompareExchange
allgemein tun können:
https://msdn.microsoft.com/en-us/library/bb297966(v=vs.110).aspx
Verschlungene verwendet werden können, Atom zu implementieren, aber clojure Atom höheres Niveau - Swap Funktion nimmt ein Lambda und führt einen Vergleich mit dem Ergebnis aus, wenn es fehlschlägt, wiederholt es sich mit einem neuen Atomzustand (bis zu bestimmten Zeiten). Aber ich denke, das sind die Schlüsse, die man in BCL bekommen kann, also ist die Antwort auf meine Frage nein. –