static void Main(string[] args)
        {
            multicastdel m    = new multicastdel();
            MyDelegate   delm = sync1.Me;
            MyDelegate   deln = sync2.MeB;

            MyDelegate del = delm + deln; // combines del1 + del2

            del("Hello World");

            MyDelegate deli = (string msg) => Console.WriteLine("Called lambda expression: " + msg);

            del += deli; // combines del1 + del2 + del3
            del("Hello World");

            del = del - delm; // removes del2
            del("Hello World");

            del -= delm; // removes del1
            del("Hello World");
            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            multicastdel m    = new multicastdel();
            MyDelegate   del1 = ClassA.MethodA;
            MyDelegate   del2 = ClassB.MethodB;

            MyDelegate del = del1 + del2; // combines del1 + del2

            del("Hello World");

            MyDelegate del3 = (string msg) => Console.WriteLine("Called lambda expression: " + msg);

            del += del3; // combines del1 + del2 + del3
            del("Hello World");

            del = del - del2; // removes del2
            del("Hello World");

            del -= del1; // removes del1
            del("Hello World");
            Console.ReadLine();
        }