Re[5]: Неблокирующая коллекция локов с функцией самоочистки
От: Lexey Россия  
Дата: 16.08.16 09:53
Оценка: 4 (2)
Здравствуйте, LWhisper, Вы писали:

TK>>Так вызовите Dispose — в чем проблема?

TK>>Очевидно, что если GetOrAdd вернула не то, что было создано (или не создано) в переданной функции то, для предыдущего объекта надо вызвать Dispose()
LW>Гениально! А как?

Как-то так, видимо:
IDisposable localValue = null;
var globalValue = dict.GetOrAdd(key, _ =>
{
    localValue = valueFactory(_);
    return localValue;
});
if (globalValue != localValue)
{
    localValue?.Dispose();
}
"Будь достоин победы" (c) 8th Wizard's rule.
Отредактировано 16.08.2016 9:56 Lexey . Предыдущая версия . Еще …
Отредактировано 16.08.2016 9:55 Lexey . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.