【发布时间】:2020-01-17 14:33:33
【问题描述】:
所以我正在使用 WPF 制作一个 GUI。所有的 GUI 交互(选择复选框、填写文本框等)都将作为参数发送到 Python 脚本,并指示 Python 脚本最终将处理什么。在大多数情况下,大多数数据都传递了固定数量的元素,但是,我传递的最后两条数据的大小取决于用户输入的内容(这些变量是 frequencyDynamicList 和 frequencyIndexList) .将这些数组作为参数发送的最佳方式是什么?
private static void run(string path, int[] temperatureList, int[] dataList, float[] toggleData, int toggleEnable, int[] bandEnable, List<string> frequencyDynamicList, List<int> frequencyIndexList)
{
Process p = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
//startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/c \"python ProcessDataGUI.py\"" + " "
+ path + " "
+ temperatureList[0] + " " + temperatureList[1] + " " + temperatureList[2] + " " + temperatureList[3] + " " + temperatureList[4] + " "
+ dataList[0] + " " + dataList[1] + " " + dataList[2] + " " + dataList[3] + " " + dataList[4] + " " + dataList[5] + " " + dataList[6] + " "
+ toggleData[0] + " " + toggleData[1] + " " + toggleData[2] + " " + toggleData[3] + " " + toggleData[4] + " " + toggleData[5] + " " + toggleData[6] + " "
+ toggleEnable + " "
+ bandEnable[0] + " " + bandEnable[1] + " " + bandEnable[2] + " "
+ frequencyDynamicList.ToArray() + " " + frequencyIndexList.ToArray();
p.StartInfo = startInfo;
p.Start();
}
【问题讨论】:
-
嵌入 Python 将消除启动新进程的开销。 docs.python.org/3/extending/embedding.html
标签: c# python arrays cmd arguments