static void Main(string[] args) { Console.WriteLine("Hello World!"); { // scope var twe = new ThingWithEvent(); { var l = new Listener(twe); twe.Fire(); Console.WriteLine("leave inner scope automatically, no finalizers expected"); } System.GC.Collect(2, GCCollectionMode.Forced, true, true); GC.WaitForPendingFinalizers(); twe.Fire(); Console.WriteLine("leave outer scope on enter, finalizers expected"); Console.ReadLine(); } System.GC.Collect(2, GCCollectionMode.Forced, true, true); GC.WaitForPendingFinalizers(); Thread.Sleep(3 * 1000); Console.WriteLine("Exiting"); }
public Listener(ThingWithEvent twe) { twe.MyEvent += e; }