Синхронизация данных в коллекциях

Рейтинг: 0Ответов: 2Опубликовано: 24.03.2015

Здравствуйте.

Есть на клиентской стороне тип List<UserResources>, содержащий ресурсы пользователя (полученные с сервера).

Раньше получение происходило так:

UserResources = Deserialize<UserResource>(Responce.Data);

т.е. тупо была замена данных.

Теперь я хочу, чтобы не замена была, а Union. Понял, что для каждого типа нужно делать EqualityComparer, и думал, что это нормально. Пока не заметил, что Union объединяет данные, и не удаляет те, которые удалились в бд. Как мне лучше сделать?

Хочу так:

UserResources.AddOrDeleteOrUpdate(Deserialize<UserResource>(userPlanetResources));
UserResources.AddOrDeleteOrUpdate(Deserialize<UserResource>(userOrbitResources));

Нужно реализовать метод AddOrDeleteOfUpdate

P.S. И как сделать безопасный доступ к UserResources из других потоков, чтобы не было проблем, когда обновляются данные и когда забираются?

Ответы

Ответов пока нет.