У меня есть коллекция объектов, которые постоянно меняются, и я хочу показывать некоторую информацию о содержимом так часто (мое приложение многопоточное, а по-разному потоки постоянно отправляют запросы на изменить объект в коллекции, поэтому он непредсказуем).Периодически повторяя коллекцию, которая постоянно меняется
Если я заблокирую коллекцию, я могу перебирать ее и получать информацию без каких-либо проблем, однако это вызывает проблемы с другими потоками, поскольку они могли бы представить несколько запросов для изменения коллекции в то же время и будут застопориться. Я подумал о нескольких путях вокруг этого, и я ищу любые советы.
- Сделайте копию коллекции и повторите ее, позволяя оригиналу продолжить обновление в фоновом режиме. Коллекция может стать большой, поэтому это не идеально, но это безопасно.
- Итерации по нему с использованием цикла For ... Next и уловить исключение IndexOutOfBounds, если элемент удален из коллекции во время итерации. Иногда это может привести к появлению дубликатов в моем снимке, поэтому он также не идеален.
Любые другие идеи? Меня беспокоит мгновенный снимок, поэтому меня не волнует отражение изменений в моем приложении - моя главная проблема заключается в том, что коллекция может быть обновлена с минимальной задержкой и что обновления никогда не будут потеряны.
Могу ли я получить объяснение downvote? – SqlRyan
Я согласен с тем, что любой, кто поставит downvote, должен поставить комментарий, я написал несколько раз, чтобы сделать обязательным, чтобы поставить комментарий, но SO не прослушивает, и я вижу, что крупные неопытные эго раздутые программисты приходят и ставят downvote без всякой причины, ваш вопрос действительно вопрос. –