Example #1
0
        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;
        }
Example #3
0
        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>();
        }