Ψάχνοντας για κάτι άλλο, πέτυχα το
Microsoft.Bcl.Immutable package το οποίο προσθέτει immutable collections στο .NET. Τα collections αυτά δεν μπορούν να τροποποιηθούν από τη στιγμή που δημιουργηθούν. Αντί γι αυτό, επιστρέφεται ένα νέο collection με τις αλλαγές που έχουν ζητηθεί. Η "μαγκιά" είναι ότι το παλιό και το νέο collection χρησιμοποιούν όσο γίνεται την ίδια μνήμη με αποτέλεσμα να μην χάνεται μνήμη.
Με τον τρόπο αυτό γίνεται πολύ ευκολότερος ο παράλληλος προγραμματισμός (δεν χρειάζονται locks), ενώ μπορεί να γραφτεί πολύ ευκολότερα exception-safe κώδικας όταν πρέπει να πειράξουμε collections.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos