C#进程WaitForExit在启动python时挂起

时间:2014-02-08 01:48:33

标签: c# python

我使用Process类来启动Python,如下所示(在一个线程中):

ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "python.exe";
info.Arguments = "test.py";
Process p = new Process();
p.StartInfo = info;
p.RedirectStandardOutput = true;
p.RedirectStandardError = true;
...
p.Start();
p.WaitForExit();

当Python以错误结束时(python进程不再显示在Windows任务管理器中),WaitForExit仍然挂起。但是,如果我使用IronPython代替,它可以正常工作。谁能告诉我为什么?

2 个答案:

答案 0 :(得分:0)

解决。 Redirects和ErrorDataReceived / OutputDataReceived事件实现导致此问题,改为使用Redirects和StreamReader。

答案 1 :(得分:0)

尝试将python.exe更改为pythonw.exe