An example of using light weight threading and message passing in C#