我需要通過GnuPG加密來加密文件的內容。 爲此,我從FILE中提取內容並通過StandardInput傳遞它。對於小數據,它工作正常,但是當我嘗試寫入超過500KB數據的StandardInput時,程序卡住了。C#進程中斷大標準輸入
process = new Process();
process.StartInfo.WorkingDirectory = _bindirectory;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.FileName = gpgExecutable;
process.StartInfo.Arguments = gpgOptions;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.Start();
/*****Here is the line where Compiler Process Stucks on large data****/
process.StandardInput.Write(inputText);
process.StandardInput.Flush();
process.StandardInput.Close();
process.OutputDataReceived += process_OutputDataReceived;
process.ErrorDataReceived += process_ErrorDataReceived;
process.BeginErrorReadLine();
process.BeginOutputReadLine();
process.WaitForExit();
請提出解決方案? 我應該發送文件的數據塊?
如果你的程序執行完畢,那麼這不是**編譯器的錯誤。很久以前,該計劃已經啓動,彙編階段已經結束。請稍微注意一下術語..但這是一件小事。你還沒有說最重要的:**當程序中斷時它看起來如何**? **它如何「卡住」?任何例外?崩潰?日誌?消息?蹤跡? – quetzalcoatl
您可能想要在啓動過程之前連接那些'... Received'處理程序。否則,你可能會錯過一些事件。 –
@Quetzalcoatl: 沒有任何反應。我離開應用2個薄荷糖NO崩潰或出現異常,不能看到堆棧跟蹤或日誌 – nalaiqChughtai