I have some problems on a site with the concurrent access to a list. This list keeps a cart of items, and multiple deletes are crashing the site. Which is the best method to sync them? Is a lock enough? The lock option seems to be ugly because the code is spread all over the place and is pretty messy.
Update: This is a list implemented like this: public class MyList : List< SomeCustomType> { }
This is a legacy site so not so many modifications are allowed to it. How should I refactor this in order to safely lock when iterating over it ?
any idea!
So is this in-memory list shared between requests? That sounds like a potential cause of problems even when you’ve got locking. Mutable shared collections should generally be avoided, IME.
Note that if you do decide to synchronize, you’ll need to do things like locking the list for the whole course of iterating over it and other compound operations. Just locking on each specific access isn’t good enough.