TPL Dataflow: LinkTo Predicates
The below code uses a predicate on the LinkTo to route messages, leading to the following output:
Logger 1
MsgBus: 2
var firstBuffer = new BufferBlock();
var secondBuffer = new BufferBlock();
var msgBus = new ActionBlock(i => Console.WriteLine(string.Join(" ", "MsgBus: ", i)));
var logger = new ActionBlock(i => Console.WriteLine(string.Join(" ", "Logger", i)));
firstBuffer.LinkTo(secondBuffer, x => x > 1);
firstBuffer.LinkTo(logger);
secondBuffer.LinkTo(msgBus);
secondBuffer.LinkTo(logger);
firstBuffer.Post(1);
firstBuffer.Post(2);
Advertisement
