public static Task <int> MyFooAsync(int p0, int p1, int p2) { MyFooAsyncStateMachine myFooAsyncStateMachine = new MyFooAsyncStateMachine { _p0 = p0, _p1 = p1, _p2 = p2, }; myFooAsyncStateMachine._builder.Start(ref myFooAsyncStateMachine); return(myFooAsyncStateMachine._builder.Task); }
void IAsyncStateMachine.MoveNext() { //throw new NotImplementedException(); try { switch (_state) { case -1: { _self = this; //int s0 = Bar(p0); //int a0 = await MyBarAsync(p0); _s0 = Bar(_p0); _awaiter = MyBarAsync(_p0).GetAwaiter(); if (_awaiter.IsCompleted) { goto case 0; } else { _state = 0; _builder.AwaitUnsafeOnCompleted(ref _awaiter, ref _self); } } break; case 0: { _a0 = _awaiter.GetResult(); //int s1 = Bar(p1); //int a1 = await MyBarAsync(p1); _s1 = Bar(_p1); _awaiter = MyBarAsync(_p1).GetAwaiter(); if (_awaiter.IsCompleted) { goto case 1; } else { _state = 1; _builder.AwaitUnsafeOnCompleted(ref _awaiter, ref _self); } } break; case 1: { _a1 = _awaiter.GetResult(); //int s2 = Bar(p2); //int a2 = await MyBarAsync(p2); _s2 = Bar(_p2); _awaiter = MyBarAsync(_p2).GetAwaiter(); if (_awaiter.IsCompleted) { goto case 2; } else { _state = 2; _builder.AwaitUnsafeOnCompleted(ref _awaiter, ref _self); } } break; case 2: { _a2 = _awaiter.GetResult(); int result = _s0 + _a0 + _s1 + _a1 + _s2 + _a2; _builder.SetResult(result); } break; } } catch (Exception ex) { _builder.SetException(ex); } }