0
希望你能帮助我。我正在用MonoDevelop编写Raspberry Pi。启动后立即停止进程
我想用C#执行一个python脚本并从中读取它。
class Program
{
public static void Main(string[] args)
{
Process p = new Process();
p.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
p.StartInfo.FileName = "sudo";
p.StartInfo.Arguments = "python gpio.py";
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
p.BeginOutputReadLine();
p.WaitForExit();
}
private static void OutputHandler(Object sender, DataReceivedEventArgs args)
{
Console.WriteLine(args.Data);
}
}
尽管调试我可以看到,该过程已退出 Click for image
但在任务管理我可以看到,该过程仍在运行。 此外脚本控制gpio引脚。脚本控制引脚(Led开/关),即使“Process已退出”。但我没有从redirectOutput获取任何内容。
为什么程序在启动后立即退出(脚本有一段时间是真的,它不应该停止)?这是执行脚本的正确方法吗?
如果我从终端执行Python脚本,它工作正常。它不应该是脚本的错误。 如果我开始一个过程,例如FileName“libreoffice”,它也可以工作。
该脚本位于“/ bin/Debug /”(文件夹)中的项目文件夹中 执行权限是为任何人设置的。
感谢,
问候
我认为问题是因为sudo,试图运行已经sudo'ed的C#程序,然后使用python作为文件名,并使用gpio.py作为参数。但是最后一个推荐,而不是使用Python来直接控制gpio的使用C#,看看这个:https://github.com/gusmanb/BCM2835Managed – Gusman