プロセスを開始するメソッドがあります。このプロセスは、外部ソースにクエリを実行し、テキスト ファイル '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」がスレッドをロックすることもどこかで見たので、プロセスが実際に最初に終了することなく、これがストリームリーダーにどのように到達するのかわかりません。
また、ウィンドウが閉じて出力ファイルがまだないため、コードがストリームリーダー行に移動すると、プロセスが単に終了するように見えます