thread-safe list<t>
От: vf  
Дата: 05.02.11 08:48
Оценка:
Добрый день,

Имеется список, нужно сделать его потокобезопасным, но хочется так чтобы ListWrapper<T>.ForEach(Action...) не блокировала ListWrapper<T>.Add и Remove (потому что Action может занимать относительно много времени).

Есть две идеи как это сделать.
1-ая-простая. сделасть копию всего списка внутри ForEach

2-ая. "накапливать" изменения списка если он заблокирован (выполняется ForEach), то есть при Add добавлять в другой "временный" список, при удалении записывать что нужно удалить. И как только список освободиться вносить изменения.

Наверняка коллекции с таким поведением имеют устоявшееся название, какое? Где можно посмотреть реализации?
Какие грабли могут быть в таком подходе?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.