Хорошо,
Итак, у меня есть метод, который срабатывает, когда кто-то нажимает на наш значок в приложении Silverlight, как показано ниже:
private void Logo_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
ShowInfo(true);
DispatcherTimer autoCloseTimer = new DispatcherTimer();
autoCloseTimer.Interval = new TimeSpan(0, 0, 10);
autoCloseTimer.Tick +=new EventHandler((timerSender,args) =>
{
autoCloseTimer.Stop();
ShowInfo(false);
});
autoCloseTimer.Start();
}
Что должно было произойти, так это то, что метод ShowInfo () открывает окно с информацией о компании, а таймер отправки автоматически закрывает ее после указанного промежутка времени. И это все работает ...
Но в чем я не уверен, так это в том, что таймер диспетчеризации является локальной переменной, после того, как метод Logo_MouseLeftButtonUp завершает работу, что нужно для того, чтобы сохранять таймер диспетчеризации ссылочным и недоступным для сбора GC до запуска анонимного метода? 1008 *
Это ссылка на метод ShowInfo () в анонимном методе?
Просто мне кажется, что кое-что я должен понять глубже, поскольку я могу представить, что с помощью событий и т. Д. Может быть очень легко создать утечку с чем-то вроде этого.
Надеюсь, все это имеет смысл!
Энди.