하나는 이벤트를 선언하는 구성를 사용할 수 있습니다 : 이벤트가 null의 경우 필요없이 이벤트를 발생 허용이벤트를 초기화하는 데 사용되는 람다 식을 사용하면 GC를 방지하지 못합니까?
public class MyClass
{
public event EventHandler<EventArgs> SomeEvent = (s,e) => {};
public void SomeMethod()
{
// Do something interesting... ;)
SomeEvent (this, new EventArgs);
}
}
확인 할 수 있습니다.
이제 개체 A가 MyClass 개체에 대한 참조를 보유하고 이벤트에 등록한 다음 나중에 등록을 취소한다고 가정 해 보겠습니다.
var myClass = new MyClass();
myClass.SomeEvent += MyHandler;
...
myClass.SomeEvent -= MyHandler;
myClass = null;
이벤트에 여전히 람다식이없는 경우에도 GC는 myClass를 수집합니까?
개체 루트가 다른 개체에 의한 참조가 아니기 때문에 ... 다른 사람이 확인하거나 달리 증명할 수 있습니까?
나는 이미 오후 2 시간에 Skeeted를하고 있으며 여기는 15시 45 분뿐입니다 :) – Stilgar