1

プロセスを開始するメソッドがあります。このプロセスは、外部ソースにクエリを実行し、テキスト ファイル 'output.txt' に出力されてディレクトリに配置される何かを返す ruby​​ スクリプトです。

実行中、次のようなメソッドを実行します。

p.StartInfo.FileName = @"blah directory";
p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
p.Start();
p.WaitForExit();

それから私の他の方法で私は言います:

processmethod();
StreamReader sr = new StreamReader ("output.txt");

output.txt ファイルを作成していないため、何らかの理由で ruby​​ スクリプトが終了していません。手動で実行すると問題なく動作するため、Ruby スクリプトに問題がないことはわかっています。

ある種のタイミングの問題だと思います。奇妙なことに、コードのその領域を変更することなく、これは昨日まで正常に機能していました。「waitforexit」がスレッドをロックすることもどこかで見たので、プロセスが実際に最初に終了することなく、これがストリームリーダーにどのように到達するのかわかりません。

また、ウィンドウが閉じて出力ファイルがまだないため、コードがストリームリーダー行に移動すると、プロセスが単に終了するように見えます

4

0 に答える 0