[英]Process stops immediately after start
希望您能够帮助我。 我正在使用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);
}
}
在调试时,我可以看到进程已退出。
但是在TaskManager中,我可以看到该进程仍在运行。 该脚本还控制gpio引脚。 即使“进程已退出”,脚本也会控制引脚(Led on / off)。 但是我没有从redirectOutput得到任何东西。
为什么进程在启动后立即退出(脚本有一段时间,它不应该停止)? 这是执行脚本的正确方法吗?
如果我从终端执行Python脚本,它将正常工作。 脚本不应该出错。 如果我启动一个进程,例如FileName“ libreoffice”,它也可以工作。
该脚本位于项目文件夹“ / bin / Debug /”中(该文件夹),执行权限设置为任何人。
谢谢,
问候
正如@Gusman所说,问题在于sudo。 并且按照建议,我现在使用DLL来访问GPIO引脚。 即使不完全支持Raspberry Pi。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.