TPL Dataflow: Logging With LinkTo Filter

Thankfully somebody showed me a better way to log:

            var firstBuffer = new BufferBlock<int>();
            var secondBuffer = new BufferBlock<int>();
            var msgBus = new ActionBlock<int>(i => Console.WriteLine(string.Join(" ", "MsgBus: ", i)));
            var logger = new ActionBlock<int>(i => Console.WriteLine(string.Join(" ", "Logger", i)));
            firstBuffer.LinkTo(secondBuffer, x => x > 1);
            firstBuffer.LinkTo(logger);
            secondBuffer.LinkTo(msgBus, item =>
                                            {
                                                Console.WriteLine(string.Join(" ", "Filter Logger", item.ToString()));
                                                return true; });
            firstBuffer.Post(1);
            firstBuffer.Post(2);

Advertisement

~ by mdavey on December 20, 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