Ok、
そのため、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 コレクションに使用できないようにするために何があるのでしょうか?
匿名メソッドの ShowInfo() メソッドへの参照ですか?
イベントなどを使用して想像できるように、このようなものでリークを作成するのは非常に簡単です。
これがすべて理にかなっていることを願っています!
アンディ。