0

我想知道这种事件的使用是否会导致 Silverlight 中的内存泄漏?

private void Button_Click(object sender, RoutedEventArgs e)
{
    var test = new ChildWindow();
    EventHandler closedEvent = null;
    closedEvent =
        (s, args) =>
        {
            test.Closed -= closedEvent;
            if (test.DialogResult == true)
            {
                // something
            }
        };
    test.Closed += closedEvent;
    test.Show();
}

我有十几个 Closed 事件的示例用法,它们是有线和泄漏的。只是想知道这个样本是否会消除内存泄漏?谢谢。

4

1 回答 1

0

我没有看到任何内存泄漏的原因。在每个按钮上单击您分配新的 ChildWindow 对象,该对象将在方法结束后被丢弃,因为您不存储引用。Labda(它的对象也是)将在 ChildWindow 对象之后被垃圾。

于 2012-11-04T07:59:52.007 回答