Esempio n. 1
0
        public async Task TaskSchedulerRespected_Task()
        {
            using (var ctx = MyTaskScheduler.Create(Log))
            {
                Assert.Equal(0, ctx.Enqueued);
                Assert.Equal(0, ctx.Dequeued);

                Assert.NotSame(TaskScheduler.Default, ctx);
                Assert.Same(TaskScheduler.Default, TaskScheduler.Current);
                await Task.Factory.StartNew(SyncOverAsync, default, default, ctx);
Esempio n. 2
0
        public async Task TaskScheduler_Tests()
        {
            TaskScheduler currentTaskScheduler = null;
            TaskScheduler defaultTaskScheduler = null;

            var ts = new MyTaskScheduler();

            var noSchedulerFunc  = Create.SimpleFunc <int>(s => s.Handler(m => defaultTaskScheduler = TaskScheduler.Current));
            var ourSchedulerFunc = Create.SimpleFunc <int>(s => s.DispatchOnTaskScheduler(ts).Handler(m => currentTaskScheduler = TaskScheduler.Current));

            await noSchedulerFunc(0);
            await ourSchedulerFunc(0);

            Assert.NotEqual(ts, defaultTaskScheduler);
            Assert.Equal(ts, currentTaskScheduler);
        }