private InterleavedParallelEventHandler <EventType>[] GetDeserializers(int parallelism) { Action <EventType, long, bool> deserializeAction = (@event, sequence, isEndOfBatch) => { @event.IncomingMessage.Content = JsonConvert.DeserializeObject <IncomingMessageContent>(@event.IncomingMessage.ContentJson); @event.IncomingMessage.ContentJson = null; }; return(InterleavedParallelEventHandler <EventType> .Group(parallelism, deserializeAction)); }
public static InterleavedParallelEventHandler <T>[] Group(int parallelism, Action <T, long, bool> action) { var toReturn = new InterleavedParallelEventHandler <T> [parallelism]; for (var i = 0; i < parallelism; i++) { toReturn[i] = new InterleavedParallelEventHandler <T>(i, parallelism, action); } return(toReturn); }