I understand your point, but a couple things lead me to believe that it is not the issue:

1. Per this [post](http://stackoverflow.com/questions/592244/difference-between-streamreader-read-and-streamreader-readblock), ReadBlock is implementing by calling Read(), so it will read whatever is available.
2. The deadlock (or hang) Henrik ran into happened when the child process had already terminated.