public void Disabled_Test_TaskScheduler_Basic ()
        {
            var sequentialTaskScheduler = new SequentialTaskScheduler (
                "TestScheduler"
                );
    
            var taskFactory = new TaskFactory (sequentialTaskScheduler);

            var usageCount = 0;

            var stopwatch = new Stopwatch ();
            
            stopwatch.Start ();

            var firstTask = taskFactory.StartNew (() => {Thread.Sleep (500); ++usageCount;});
            var secondTask = taskFactory.StartNew (() => {Thread.Sleep (500); ++usageCount;});

            firstTask.Wait ();
            secondTask.Wait ();

            stopwatch.Stop ();

            TestFor.Equality(2, usageCount, "Both tasks are expected to be executed");
            TestFor.Equality(true, Math.Abs(stopwatch.ElapsedMilliseconds - 1000) < 100, "Elapsed time is expected to be around 1 sec");

            sequentialTaskScheduler.DisposeNoThrow();
        }
        public void Disabled_Test_TaskScheduler_Basic()
        {
            var sequentialTaskScheduler = new SequentialTaskScheduler(
                "TestScheduler"
                );

            var taskFactory = new TaskFactory(sequentialTaskScheduler);

            var usageCount = 0;

            var stopwatch = new Stopwatch();

            stopwatch.Start();

            var firstTask  = taskFactory.StartNew(() => { Thread.Sleep(500); ++usageCount; });
            var secondTask = taskFactory.StartNew(() => { Thread.Sleep(500); ++usageCount; });

            firstTask.Wait();
            secondTask.Wait();

            stopwatch.Stop();

            TestFor.Equality(2, usageCount, "Both tasks are expected to be executed");
            TestFor.Equality(true, Math.Abs(stopwatch.ElapsedMilliseconds - 1000) < 100, "Elapsed time is expected to be around 1 sec");

            sequentialTaskScheduler.DisposeNoThrow();
        }
        public void Test_TaskScheduler_ShutDown ()
        {
            var sequentialTaskScheduler = new SequentialTaskScheduler (
                "TestScheduler"
                );
    
            var taskFactory = new TaskFactory (sequentialTaskScheduler);

            var usageCount = 0;

            var firstTask = taskFactory.StartNew (() => {Thread.Sleep (500); ++usageCount;});
            var secondTask = taskFactory.StartNew (() => {Thread.Sleep (500); ++usageCount;});

            var stopwatch = new Stopwatch ();
            stopwatch.Start ();

            var remainingTime = new RemainingTime (TimeSpan.FromMilliseconds(4000));
            sequentialTaskScheduler.ShutDown(remainingTime);

            stopwatch.Stop();
            TestFor.Equality(true, stopwatch.ElapsedMilliseconds < 750, "Shutdwn time is expected to be less than 0.75 sec");
        }
        public void Test_TaskScheduler_ShutDown()
        {
            var sequentialTaskScheduler = new SequentialTaskScheduler(
                "TestScheduler"
                );

            var taskFactory = new TaskFactory(sequentialTaskScheduler);

            var usageCount = 0;

            var firstTask  = taskFactory.StartNew(() => { Thread.Sleep(500); ++usageCount; });
            var secondTask = taskFactory.StartNew(() => { Thread.Sleep(500); ++usageCount; });

            var stopwatch = new Stopwatch();

            stopwatch.Start();

            var remainingTime = new RemainingTime(TimeSpan.FromMilliseconds(4000));

            sequentialTaskScheduler.ShutDown(remainingTime);

            stopwatch.Stop();
            TestFor.Equality(true, stopwatch.ElapsedMilliseconds < 750, "Shutdwn time is expected to be less than 0.75 sec");
        }