У меня есть ConcurrentDictionary в моем классе сеанса.
Ключ - это интерфейс, представляющий класс менеджера.
Значение - это список классов DataContracts, которые используются для этого менеджера в этом сеансе.Утилизировать словарь в лучшей практике C#
Когда я удаляю класс сеанса, я хочу очистить этот словарь. Мне нужно очистить все значения и ключи, но я не могу распоряжаться ключами - поскольку они все еще существуют после того, как класс удалил.
Этого достаточно? - приведет ли это к тому, что GC выполнит эту работу?
_myDictionary = null;
Или мне нужно выполнить итерацию с помощью foreach на всех клавишах и использовать Удалить для очистки значений.
Этого хватит. Однако, если что-либо, кроме словаря, сохраняет ссылки на значения, то, конечно, значения не будут освобождены до тех пор, пока эти другие ссылки не исчезнут. –