public void AwaitableAwaiterVoid() { var n = 0; var r = new AnonymousAwaitable( () => new AnonymousAwaiter( () => { n = 1; return true; }, a => { n = 2; a(); }, () => n = 3)); var x = r.GetAwaiter(); n.AssertEquals(0); x.IsCompleted.AssertIsTrue(); n.AssertEquals(1); x.OnCompleted(() => { }); n.AssertEquals(2); x.GetResult(); n.AssertEquals(3); }
public void AwaitableAwaiterVoid() { var n = 0; var r = new AnonymousAwaitable( () => new AnonymousAwaiter( () => { n = 1; return(true); }, a => { n = 2; a(); }, () => n = 3)); var x = r.GetAwaiter(); n.AssertEquals(0); x.IsCompleted.AssertIsTrue(); n.AssertEquals(1); x.OnCompleted(() => { }); n.AssertEquals(2); x.GetResult(); n.AssertEquals(3); }