Сообщение Re[5]: Неблокирующая коллекция локов с функцией самоочистки от 16.08.2016 9:53
Изменено 16.08.2016 9:56 Lexey
Здравствуйте, LWhisper, Вы писали:
TK>>Так вызовите Dispose — в чем проблема?
TK>>Очевидно, что если GetOrAdd вернула не то, что было создано (или не создано) в переданной функции то, для предыдущего объекта надо вызвать Dispose()
LW>Гениально! А как?
Как-то так видимо:
TK>>Так вызовите Dispose — в чем проблема?
TK>>Очевидно, что если GetOrAdd вернула не то, что было создано (или не создано) в переданной функции то, для предыдущего объекта надо вызвать Dispose()
LW>Гениально! А как?
Как-то так видимо:
IDisposable localValue = null;
var globalValue = dict.GetOrAdd(key, _ =>
{
localValue = valueFactory(_);
return localValue;
});
if (globalValue != localValue)
{
localValue?.Dispose();
}
Re[5]: Неблокирующая коллекция локов с функцией самоочистки
Здравствуйте, LWhisper, Вы писали:
TK>>Так вызовите Dispose — в чем проблема?
TK>>Очевидно, что если GetOrAdd вернула не то, что было создано (или не создано) в переданной функции то, для предыдущего объекта надо вызвать Dispose()
LW>Гениально! А как?
Как-то так, видимо:
TK>>Так вызовите Dispose — в чем проблема?
TK>>Очевидно, что если GetOrAdd вернула не то, что было создано (или не создано) в переданной функции то, для предыдущего объекта надо вызвать Dispose()
LW>Гениально! А как?
Как-то так, видимо:
IDisposable localValue = null;
var globalValue = dict.GetOrAdd(key, _ =>
{
localValue = valueFactory(_);
return localValue;
});
if (globalValue != localValue)
{
localValue?.Dispose();
}