private static void VerfiySync(SyncExample sync)
        {
            Thread t = new Thread(
                () =>
            {
                Thread.Sleep(250);
                sync.Signal();         // signal after 250ms
            });

            t.Start();
            try
            {
                if (!sync.Wait(500))
                {
                    Assert.Fail("SyncExample.Signal() should have been called by now but that didn't happen.");
                }
            }
            finally
            {
                t.Join(1000);
                if (t.IsAlive)
                {
                    t.Abort();
                }
            }
        }
        public void RealSyncTest()
        {
            var sync = new SyncExample();

            VerfiySync(sync);
        }