Multiple await on same task may cause blocking
问题 It should be careful to use several awaits on same Task. I have encountered with such situation while trying to use BlockingCollection.GetConsumingEnumerable() method. And ends up with this simplified test. class TestTwoAwaiters { public void Test() { var t = Task.Delay(1000).ContinueWith(_ => Utils.WriteLine("task complete")); var w1 = FirstAwaiter(t); var w2 = SecondAwaiter(t); Task.WaitAll(w1, w2); } private async Task FirstAwaiter(Task t) { await t; //await t.ContinueWith(_ => { }); Utils