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