Комментарий к Tools.Collections

Версия 10.1 от Alexandr Fokin на 2021/01/08 15:50

  • Alexandr Fokin
    Alexandr Fokin 2020/06/14 16:34

    На основе материала, приведенного по 2 ссылке. Можно реализовать удаление из ConcurrentDictionary только при определенных условиях.
    В данном проекте используется RemoveLinkItem, для проверки что счетчик ссылок <= 0.
    Но в целом можно реализовать передачу любого делегата с условием. (И производит удаление только в случае, когда условие истинно)

    Таким образом получив интерфейс
    RemoveIf(TKey key, Func<TKey, TValue, bool> needRemove)

  • Alexandr Fokin
    Alexandr Fokin 2020/06/14 16:57

    Возможно, в данном случае, для проверки оптимистичной блокировки было бы достаточно ReferenceEquals. (Вместо Stamp)
    Т.к. Item иммутабелен.