嗨其他程序员,
我在这个问题上摸不着头脑。我使用以下方法来启动进程。第一个是wkhtmltoimage.exe,然后是wkhtmltopdf.exe。一切都按预期工作,除了Process_Exited
并不总是被调用。在我的程序的单次运行中,我多次按下相应的按钮,我有所有可能的变化:
通过任务管理器和调试器,我可以验证 这些过程总是正确结束 没有什么是可重复的,每次运行都是不同的。这是我第一次尝试使用流程,也许我做错了。幸运的是,解决这个问题对我的申请来说并不重要。
protected Process StartProcess(string FileName, string Arguments)
{
ProcessStartInfo MyStartInfo = new ProcessStartInfo(FileName, Arguments)
{
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardInput = true
};
Process Proc = new Process { StartInfo = MyStartInfo };
Proc.EnableRaisingEvents = true;
Proc.Exited += (sender, name) => Process_Exited(Proc, Proc.ProcessName);
Proc.Start();
return Proc;
}
protected void Process_Exited(object sender, string ProcessName)
{
Debug.WriteLine("Process_Exited: " + ProcessName);
}
答案 0 :(得分:0)
您是否确定在退出流程时您的程序仍在运行。
在调用Process_Exited之前,我怀疑你的程序是否正在结束。