…折角のネタの流れをぶった切ってスマンが質問させてください

C++/CLIで、コンソールアプリケーションを操作するアプリを作ろうとしてます。
コンソールアプリは標準入力から情報を受け取って標準出力に吐き出す、というモノ。
でもって、コンソールアプリに情報を送り、返ってきた情報に応じて処理を分岐し、
さらにコンソールアプリに情報を送って…ということをやりたいと思っています。
ところがその第一歩目から躓いてしまいました。

myProcess->StartInfo->UseShellExecute = false;
myProcess->StartInfo->RedirectStandardInput = true;
myProcess->StartInfo->RedirectStandardOutput=true;
myProcess->Start();
StreamReader^ myStreamReader = myProcess->StandardOutput;
StreamWriter^ myStreamWriter = myProcess->StandardInput;
myStreamWriter->WriteLine("list");
textBox1->Text=myStreamReader->ReadLine();
myStreamWriter->WriteLine("exit");
myStreamWriter->Close();
myStreamReader->Close();
myProcess->WaitForExit();
myProcess->Close();

…というコードを書いたら、「list」のコマンドは実行されるのに、「exit」が実行されません。
listの位置にexitを持ってきたら正しく動作します。
何故期待通りに動いてくれないのでしょうか。また、どうしたら正しく動作するようになるのでしょうか。