public FibonacciDistributedSequencesManager(int count, Func <FibonacciState, IFibonacciSequence> sequencerCreator, FibonacciState firstState, FibonacciState secondState) { Count = count; SequencerCreator = sequencerCreator; FirstState = firstState; SecondState = secondState; }
private TransformBlock <UpdateMessage, UpdateMessage> CreateUpdateSequenceBlock(FibonacciState state) { var sequencer = SequencerCreator(state); return(new TransformBlock <UpdateMessage, UpdateMessage>(um => { Thread.Sleep(500); //For demonstration return new UpdateMessage { SequenceId = um.SequenceId, State = sequencer.Next(um.State) }; })); }