TPL Dataflow fornisce TransformBlock
per trasformare ingresso, es .:Skip articolo in Dataflow TransformBlock
var tb = new TransformBlock<int, int>(i => i * 2);
'possibile non uscita alcuni degli input, ad esempio se l'input fallisce un test di validazione?
var tb = new TransformBlock<InputType, OutputType>(i =>
{
if (!ValidateInput(i))
{
// Do something to not output anything for this input
}
// Normal output
}
Se ciò non è possibile, quale sarebbe lo schema migliore per raggiungere tale scopo?
Qualcosa come il seguente?
BufferBlock<OutputType> output = new BufferBlock<OutputType>();
var ab = new ActionBlock<InputType>(i =>
{
if (ValidateInput(i))
{
output.Post(MyTransform(i));
}
}
Questa è essenzialmente l'opzione (2) nella risposta di svick. –
@GordonBean con collegamento diretto aggiunto tra i blocchi – VMAtm