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

~ by mdavey on December 13, 2010.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.

Join 272 other followers