Почему GalaSoft намеренно использует WeakAction
вместо простого Action
, позволяющего функциям собирать мусор?
Скорее всего, для предотвращения того, чтобы команды (команды) оставляли в живых владельца (ей) действия, и вызывали утечки памяти в приложении MvvmLight
.
Используя WeakAction<T>
, владелец по-прежнему имеет право на сборку мусора, несмотря на то, что команда может отсутствовать, поскольку нет строгой ссылки между командой и владельцем действия.