public void TimedInsertAndInvoke()
        {
            var   eventClass  = new ParameterizableEventFooClass();
            int   invokeCount = 0;
            Mutex mutex       = new Mutex();

            //Jakmile nмkdo spustн event, dej mi vмdмt
            eventClass.Event.Add((caller, args) =>
            {
                mutex.WaitOne();
                invokeCount += args.SomeValue;
                mutex.ReleaseMutex();
            });

            //Spusќ count down na novйm vlбknм (kterэ potom zavolб event invoke)
            new Thread(() =>
            {
                eventClass.StartCountdown();
            }).Start();

            //Poиkej na count down
            Thread.Sleep(6000);

            //Otestuj
            mutex.WaitOne();
            Assert.IsTrue(invokeCount >= 0 && invokeCount <= 4000);
            mutex.ReleaseMutex();
        }
        public void SimpleInvoke()
        {
            var eventClass  = new ParameterizableEventFooClass();
            int invokeCount = 0;

            //Jakmile nмkdo spustн event, dej mi vмdмt
            eventClass.Event.Add((caller, args) =>
            {
                invokeCount += args.SomeValue;
            });

            //Spusќ event - normбlnм by dмlal tшнda sama
            eventClass.Event.Invoke(eventClass, new ParameterizableEventFooArgs(1));
            eventClass.Event.Invoke(eventClass, new ParameterizableEventFooArgs(2));


            //Otestuj
            Assert.AreEqual(3, invokeCount);
        }