Yo
Один из моих элементов управления WPF сохраняется в памяти из-за одного из его закрытых членов.Элемент, который является инкриминирующим, является DispatcherTimer, и его сохранение связано с обработчиком события Tick.(Эта утечка была обнаружена с помощью инструмента ANTS Memory Profiler)
Очевидно, я установил / удалил обработчик при загрузке / выгрузке.И элемент управления выгружен ...
void TransportControl_Loaded(object sender, RoutedEventArgs e)
{
if (m_playheadTimer == null)
{
m_playheadTimer = new System.Windows.Threading.DispatcherTimer();
m_playheadTimer.Tick += PlayheadTimer_Tick;
m_playheadTimer.Interval = TimeSpan.FromMilliseconds(50);
}
}
void TransportControl_Unloaded(object sender, RoutedEventArgs e)
{
if (m_playheadTimer != null)
{
if (m_playheadTimer.IsEnabled)
m_playheadTimer.Stop();
m_playheadTimer.Tick -= PlayheadTimer_Tick;
}
}
Но все же я застрял с этой проблемой (так же, как мой элемент управления застрял в памяти).Любые идеи, THX