public void MultipleTimedInsertAndInvoke() { var eventClass = new SimpleEventFooClass(); int invokeCount = 0; Mutex mutex = new Mutex(); //Jakmile nмkdo spustн event, dej mi vмdмt eventClass.Event.Add(() => { mutex.WaitOne(); invokeCount++; mutex.ReleaseMutex(); }); //Spusќ count down na novйm vlбknм (kterэ potom zavolб event invoke) for (int i = 0; i < 10; i++) { new Thread(() => { eventClass.StartCountdown(); }).Start(); } //Poиkej na count down Thread.Sleep(6000); //Otestuj mutex.WaitOne(); Assert.AreEqual(10, invokeCount); mutex.ReleaseMutex(); }
public void SimpleInvoke() { var eventClass = new SimpleEventFooClass(); int invokeCount = 0; //Jakmile nмkdo spustн event, dej mi vмdмt eventClass.Event.Add(() => { invokeCount++; }); //Spusќ event - normбlnм by dмlal tшнda sama eventClass.Event.Invoke(); eventClass.Event.Invoke(); //Otestuj Assert.AreEqual(2, invokeCount); }