/// <summary>
        /// Thread proc, which is supplied with the relevant wait object
        /// </summary>
        /// <param name="zleep">Test purpose sleep in ms</param>
        /// <param name="deSync">Sync/Wait object</param>
        private static void _threadProc(int zleep, GYReverseSemaphore deSync)
        {
            string n = Thread.CurrentThread.Name;

            Write($"{DateTime.Now} - {n} - zzzleeps ({zleep}ms)\n");
            Thread.Sleep(zleep);
            Write($"{DateTime.Now} - {n} - waits for threshold\n");
            //
            //
            deSync.WaitAll();
            //
            //
            Write($"{DateTime.Now} - {n} - Released!\n");
        }
 /// <summary>
 /// CTOR
 /// </summary>
 /// <param name="threshold">for GYReverseSemaphore</param>
 /// <exception cref="System.ArgumentException"></exception>
 /// <see cref="GYLib1.GYReverseSemaphore.GYReverseSemaphore(int)"/>
 public GYReverseSemaphoreTester(int threshold)
 {
     _sync = new GYReverseSemaphore(threshold);
 }