-1

C# コマンド ウィンドウ アプリケーションを作成しました。main() 内のコマンドラインで一連のプロセスを実行しています。例えば

void main()
{
    process p1 = new process()
    set p1 properties
    p1.start()
 -->p1.StandardInput.WriteLine("start /WAIT cmd.exe /c BUILD -cZP");
}

この行は、新しいコマンド ウィンドウでいくつかのプログラムを実行します。その最後の行を実行している間、ctrl+c を使用してこの実行を中断し、制御をメイン プログラムの実行に戻します。

ループスルーして実行ウィンドウに出力します。

p1.StandardInput.WriteLine("Done some action"); 
p1.WaitForExit();
p1.Close();

上記の 3 行は実行されません。問題は、プログラムにある次の行を実行するためにp1が閉じないことです。

process p2 = new process()
...
p2.waitforExit()
p2.close.

上記の課題に対する洞察は素晴らしいでしょう。どうも。

4

1 に答える 1

1

私があなたを正しく理解していれば (私があなたを理解していないことは認めます)、問題は、プロセス p1 に侵入するためにCTRL-を押したときに、実際にそのプロセスを強制終了していることだと思います。C次に、強制終了されたばかりのプロセスの標準入力にテキストを送信しようとしています。プロセスが入力を受け取ることができなくなるため、メイン プログラムがハングします。それが私の最善の推測です。

于 2008-10-06T05:13:05.853 に答える