C# 使用 Process ,启动 python.exe 执行多进程脚本问题。
我有一个C# 程序,使用Process 启动一个子进程,
C# 子进程中 执行了一个 python.exe multi-process.py 的python多进程脚本,
然后 python启动的子进程就不受C# 程序控制了, 无法关闭,也无法获取 输出
C# 代码
Process cmd = new Process(); cmd.StartInfo.FileName = "python.exe";
cmd.StartInfo.Arguments = "-u multi-process.py";
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.WorkingDirectory = workSpace;
cmd.StartInfo.UseShellExecute = false;
cmd.EnableRaisingEvents = true;
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.RedirectStandardError = true;
cmd.Start();
cmd.BeginOutputReadLine();
cmd.BeginErrorReadLine();
python 代码
import sysimport json
import time
from multiprocessing import Process
class Proce(Process):
def __init__(self, index):
self.index = index
super().__init__()
def run(self):
ResultHelper.report_server_success(self.index)
while True:
print(str(self.index) + " ::" + str(time.strftime('%Y-%m-%d %H:%M:%S')))
time.sleep(2)
if __name__ == "__main__":
print('starting ...')
ResultHelper.report_server_info(2)
for i in range(2):
s = i + 1
Proce(s).start()
print('starting2 ...')
以上是 C# 使用 Process ,启动 python.exe 执行多进程脚本问题。 的全部内容, 来源链接: utcz.com/a/161176.html