Use Parallel.TaskConfig.OnMessage and provide a common message processing function.
FPipeline := Parallel.Pipeline()
.Stage(StageWorker1, Parallel.TaskConfig.OnMessage(MessageProc))
.NumTasks(MaxReadThreadCount)
.Stage(StageWorker2, Parallel.TaskConfig.OnMessage(MessageProc))
.Run();
procedure MessageProc(var msg: TOmniMessage);
begin
...
end;
MessageProc
can be a normal procedure or a method.