示例#1
0
        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");
        }
示例#2
0
 public Listener(ThingWithEvent twe)
 {
     twe.MyEvent += e;
 }