我有一个启动进程的方法。该过程是一个 ruby 脚本,它查询外部源并返回打印到文本文件“output.txt”并放置在目录中的内容。
在执行期间,我运行如下所示的方法:
p.StartInfo.FileName = @"blah directory";
p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
p.Start();
p.WaitForExit();
然后在我的另一种方法中,我说:
processmethod();
StreamReader sr = new StreamReader ("output.txt");
由于某种原因,ruby 脚本没有完成,因为它没有创建 output.txt 文件。我知道这不是 ruby 脚本的问题,因为如果我手动执行它,它就可以正常工作。
我猜它的某种时间问题。奇怪的是,直到昨天,这一直运行良好,没有对代码的那个区域进行任何更改。我在某处看到“waitforexit”也锁定了线程,所以我不确定如果没有他的进程实际上首先完成,这是如何到达流读取器的。
当代码移动到流读取器行时,该过程似乎也简单地终止,因为窗口关闭并且我仍然没有输出文件