TPL DataflowTransformBlock
は、入力を変換するための を提供します。例:
var tb = new TransformBlock<int, int>(i => i * 2);
入力が検証テストに失敗した場合など、入力の一部を出力しないことは可能ですか?
var tb = new TransformBlock<InputType, OutputType>(i =>
{
if (!ValidateInput(i))
{
// Do something to not output anything for this input
}
// Normal output
}
それが不可能な場合、その目的を達成するための最良のパターンは何ですか?
以下のようなものですか?
BufferBlock<OutputType> output = new BufferBlock<OutputType>();
var ab = new ActionBlock<InputType>(i =>
{
if (ValidateInput(i))
{
output.Post(MyTransform(i));
}
}