public async Task InvokeAsync_SameThreadNoValue() { var threadIds = new List <int> { Thread.CurrentThread.ManagedThreadId }; var di = new DataInvoker(); await di.InvokeAsync(null, async() => { threadIds.Add(Thread.CurrentThread.ManagedThreadId); await Task.Delay(0); }); threadIds.Add(Thread.CurrentThread.ManagedThreadId); Assert.AreEqual(1, threadIds.Distinct().Count()); }
public async Task InvokeAsync_SameThreadValue() { ExecutionContext.Reset(); ExecutionContext.SetCurrent(new ExecutionContext()); var threadIds = new List <int> { Thread.CurrentThread.ManagedThreadId }; var di = new DataInvoker(); var val = await di.InvokeAsync(null, async() => { threadIds.Add(Thread.CurrentThread.ManagedThreadId); await Task.Delay(0); return(1); }); threadIds.Add(Thread.CurrentThread.ManagedThreadId); Assert.AreEqual(1, val); Assert.AreEqual(1, threadIds.Distinct().Count()); }