在这种情况下是否需要注销事件以防止内存泄漏?

时间:2019-03-08 14:14:05

标签: c# events

我这样注册和注销事件。是否需要像这样注销?

void DoSomething()
{
    using (MyObject ob = new MyObject())
    {
        ob.Start += Ob_Start;
        ob.Completed += Ob_Completed;
    }
}

void Ob_Start(object sender, eventArgs e)
{

}

void Ob_Completed(object sender, eventArgs e)
{
    ((MyObject)sender).Start -= Ob_Start;
    ((MyObject)sender).Completed -= Ob_Completed;
}

1 个答案:

答案 0 :(得分:0)

是的,它将防止内存泄漏。保留事件订阅可防止在对象上进行垃圾收集。

Source