C# 使用 Process ,启动 python.exe 执行多进程脚本问题。

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 sys

import 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

回到顶部