Ive currently got a few console apps that basically expose some
distributed systems, so i have lets say 3 console apps that
connect to a controller and get spammed data that they process
and send the results back...  Now it all works fine and great,
and at certain points if there was any problems or issues it
writes it out to the console... however im now having to add
support for bringing back information on each node... so in the
console app you could write "/onlinetime" and it would tell you
how long the node had been online for, and there are lots of
other random commands...  Now this all seemed great until i
realised one problem...  As the sockets are all asynchronous (i
presume they all have their own threads) they work seperatly to
the main console app, which just has a:      // used to be
Thread.Sleep(1000); just to keep CPU spinning     string
InputCommand = Console.ReadLine(); Now that all works fine
unless an error or some status message needs to be written from
the sockets stuff, then it ends up c