Ejemplo n.º 1
0
        public async Task Dispatch_When_Called_Inside_Strand_Action_Is_Executed_Inline()
        {
            var originalTaskThreadId   = INVALID_THREAD_ID;
            var inDispatchTaskThreadId = INVALID_THREAD_ID;

            var task = TestTaskFactory.StartNew(() =>
            {
                originalTaskThreadId = Thread.CurrentThread.ManagedThreadId;
                m_strandScheduler.Dispatch(() => inDispatchTaskThreadId = Thread.CurrentThread.ManagedThreadId).Wait();
            });

            await task;

            Assert.AreNotEqual(INVALID_THREAD_ID, originalTaskThreadId);
            Assert.AreNotEqual(INVALID_THREAD_ID, inDispatchTaskThreadId);
            Assert.AreEqual(originalTaskThreadId, inDispatchTaskThreadId);
        }