TPL Dataflow Starvation Fixed

Wednesday, February 10, 2016

TPL Dataflow Starvation Fixed Great news for all TPL Dataflow developers. The old  bug (more than a year since I reported it) was finally fixed at version 4.5.24. now it is safe to use fallback scenario with TPL Dataflow. for example: if you’re having 2 face recognition algorithm: * excellent but slow * fine and fast and you want to use those algorithm on a video streams without getting to much behind. You can limit the Bounded Capacity of the excellent algorithm’s block, link the two algorithm’s blocks to a buffer block. As long as the excellent...

The 3rd day of the SDP

Wednesday, May 8, 2013

The 3rd day of the SDP was over and I want to thanks all the attendants. my yesterday session was about C# 5 async and await. today I will have a full day tutorial on Rx and TPL Dataflow. you can download the demo code and also the presentation for second and third days from here (the link is also having the demo code for today's sessions). anyway, I also want to recommend 2of yesterday session. if you were attend at the conference you should have an access to...

Parallel and The C# Memory Model

Wednesday, March 6, 2013

Parallel and The C# Memory Model Parallel programming can be tricky, both compiler and CPU's optimization can lead into a twilight zone's debugging. lets take the following code snippet snippet: Code Snippet class Program {     static void Main(string args)     {         Console.WriteLine("Start");         var u = new Util();         u.Exec();         Console.ReadKey();     } }   public class Util {     private bool _stop = true;     public void Exec()     {         Task t = Task.Run(() =>             {                 bool b = true;                 while (_stop)                 {                     b = !b;                 }                 Console.WriteLine("Complete {0}", b);             });         Thread.Sleep(30);         _stop = false;     } } ...

SDP 2012 – Day 2

Monday, November 19, 2012

SDP 2012 - Day 2 the SDP 2012 conference has day 2 had completed. I was speaking about async / await, Rx and TPL Dataflow. you can find the materials for my lecture in here. I will give the same lecture on Wednesday next week, there is a chance that some place is still available, so if you are interesting, you can check it with Sela Marketing.

My session at the SDP

Tuesday, March 13, 2012

Sela conferences (SDP) is coming near (25-29/3/2012). you can check the following link for all the SDP's tutorials and sessions http://www.sela.co.il/s/SDP2012/index.html. I will present 2 full-day tutorials (Yaniv Rodenski will join me on the first one). the first day Introduction to the Task Parallel Library is a full TPL 4 day which will give you a solid knowledge, HowTo and Consideration about building parallel application using the TPL library.   at the end of this day we will survey some improvement made in .NET 4.5 to the existing TPL Library. the second day Parallel Programming: One...

Tpl Dataflow walkthrough – Part 5

Saturday, January 28, 2012

Tpl Dataflow walkthrough - Part 5 this post is a complete walkthrough of a web crawler sample that was build purely by using Tpl Dataflow. it was built on .NET 4.5 / C# 5 (on a virtual machine using VS 11). I will analyze each part of this sample, both by discussing the Dataflow blocks and the patterns in used. the sample code is available in here (it is a VS 11 project). during the walkthrough you will see the following Tpl Dataflow blocks: TransformBlock ...

Tpl Dataflow (IDataflowBlock) – Part 5

Monday, December 19, 2011

Tpl Dataflow (IDataflowBlock ) - Part 5 the previous post discus the concept ITargetBlock and ISourceBlock, which is the TDF consumer/Producer contract. you can find all the post in this series under the TDF tag. this post focus on the IDataflowBlock contract which is the life-time management contract for all data-flow's blocks. the IDataflowBlock define single property and 2 methods: Code Snippet public interface IDataflowBlock {     Task Completion { get; }       void Complete();     void Fault(Exception exception); } ...

Tpl Dataflow (block structure) – Part 4

Friday, December 16, 2011

Tpl Dataflow (block structure) - Part 4 this is the 4th post in the Tpl dataflow series, you can see other post in this series at the TDF tag. this post will discuss a general implementation of built-in Tpl dataflow block. in general built-in blocks fall into 3 categories Pure buffering blocks: present different strategy of buffering and distribution. Execution blocks: manipulate the incoming messages. Grouping blocks: ...