System.Threading.Tests.ExecutionContextTests.VerifyExecutionContextFlow C# (CSharp) Method

VerifyExecutionContextFlow() private static method

private static VerifyExecutionContextFlow ( AsyncLocal asyncLocal, int expectedValue ) : void
asyncLocal AsyncLocal
expectedValue int
return void
        private static void VerifyExecutionContextFlow(AsyncLocal<int> asyncLocal, int expectedValue)
        {
            Assert.Equal(expectedValue == 0, ExecutionContext.IsFlowSuppressed());
            if (ExecutionContext.IsFlowSuppressed())
            {
                Assert.Null(ExecutionContext.Capture());
            }
            VerifyExecutionContext(ExecutionContext.Capture(), asyncLocal, expectedValue);

            int asyncLocalValue = -1;
            var done = new ManualResetEvent(false);
            ThreadPool.QueueUserWorkItem(
                state =>
                {
                    asyncLocalValue = asyncLocal.Value;
                    done.Set();
                });
            done.CheckedWait();
            Assert.Equal(expectedValue, asyncLocalValue);
        }