internal AsyncStateMachine(TState initialState, AwaitableStateMachineConfiguration <TState, TTrigger> config) { Contract.Requires(initialState != null); Contract.Requires(config != null); machine = new AwaitableStateMachine <TState, TTrigger>(initialState, config); actionsQueue = ImmutableQueue.Create <Func <Task> >(); }
internal AwaitableStateMachineWithScheduler(TState initialState, AwaitableStateMachineConfiguration <TState, TTrigger> config, TaskScheduler scheduler) { Contract.Requires(initialState != null); Contract.Requires(config != null); Contract.Requires(scheduler != null); machine = new AwaitableStateMachine <TState, TTrigger>(initialState, config); Scheduler = scheduler; }
internal AsyncStateMachine(TState initialState, AwaitableStateMachineConfiguration <TState, TTrigger> config) { Contract.Requires(initialState != null); Contract.Requires(config != null); machine = new AwaitableStateMachine <TState, TTrigger>(initialState, config); machine.UnhandledTriggerExecuted += UnhandledTriggerExecuted; machine.StateChanged += StateChanged; dispatcher = new SynchronizationContextDispatcher(); dispatcher.Initialize(); actionsQueue = ImmutableQueue.Create <Action>(); }