public IAwaitable CreateAwaitable(Func<IAsyncStateMachine, Action> stateMachineHandler) { var awaiter = new YieldingAwaiter(continuation => { var machine = AsyncUtil.GetStateMachine(continuation); nextAction = stateMachineHandler(machine); }); return awaiter.NewAwaitable(); }
public YieldingAwaitable <T> CreateYieldingAwaitable <T>(Func <IAsyncStateMachine, Action> stateMachineHandler, T value) { var awaiter = new YieldingAwaiter <T>(continuation => { var machine = AsyncUtil.GetStateMachine(continuation); nextAction = stateMachineHandler(machine); }, value); return(new YieldingAwaitable <T>(awaiter)); }
public IAwaitable CreateAwaitable(Func <IAsyncStateMachine, Action> stateMachineHandler) { var awaiter = new YieldingAwaiter(continuation => { var machine = AsyncUtil.GetStateMachine(continuation); nextAction = stateMachineHandler(machine); }); return(awaiter.NewAwaitable()); }
public IAwaitable Retry(int times) { var awaiter = new YieldingAwaiter(continuation => { retryCount = 0; retryMax = times; SaveState(stateMachine); }); return awaiter.NewAwaitable(); }
public YieldingAwaitable <T> CreateYieldingAwaitable <T>(Action <IAsyncStateMachine> stateMachineHandler, T result) { var awaiter = new YieldingAwaiter <T>(continuation => { var machine = AsyncUtil.GetStateMachine(continuation); stateMachineHandler(machine); nextAction = continuation; }, result); return(new YieldingAwaitable <T>(awaiter)); }
public IAwaitable Retry(int times) { var awaiter = new YieldingAwaiter(continuation => { retryCount = 0; retryMax = times; SaveState(stateMachine); }); return(awaiter.NewAwaitable()); }
public IAwaitable Setup() { var awaiter = new YieldingAwaiter(continuation => { stateMachine = AsyncUtil.GetStateMachine(continuation); machineContinuation = continuation; if (savedState == null) { SaveState(stateMachine); } else { stateMachine.LoadFrom(new MemoryStream(savedState)); } }); return awaiter.NewAwaitable(); }
public IAwaitable Setup() { var awaiter = new YieldingAwaiter(continuation => { stateMachine = AsyncUtil.GetStateMachine(continuation); machineContinuation = continuation; if (savedState == null) { SaveState(stateMachine); } else { stateMachine.LoadFrom(new MemoryStream(savedState)); } }); return(awaiter.NewAwaitable()); }
internal YieldingAwaitable(YieldingAwaiter <T> awaiter) { this.awaiter = awaiter; }