Beispiel #1
0
        public ScheduledFutureAwaiter(Future future, FutureScheduler scheduler)
        {
            ThrowHelper.NotNull(scheduler, nameof(scheduler));

            _future    = future;
            _scheduler = scheduler;
        }
        private void Run()
        {
            FutureScheduler.SetContextualScheduler(this);

            foreach (var c  in _workQueue.GetConsumingEnumerable())
            {
                c.Callback(c.State);
            }
        }
Beispiel #3
0
        public async Task ContextualAsyncTest()
        {
            var syncContext = new TestSynchronizationContext();
            var scheduler   = FutureScheduler.FromSynchronizationContext(syncContext);

            async ContextualFuture LocalTest()
            {
                syncContext.AssertCurrentContext();

                await LocalTest2();
            }

            async Future LocalTest2()
            {
                await FutureScheduler.ThreadPool;

                Assert.Null(SynchronizationContext.Current);
            }

            await scheduler.Run(() => LocalTest());
        }
Beispiel #4
0
 public ScheduledFutureAwaitable(Future future, FutureScheduler scheduler)
 {
     _future    = future;
     _scheduler = scheduler;
 }
Beispiel #5
0
 internal Future(FutureScheduler scheduler = null)
 {
     Scheduler = scheduler;
 }