This question already has answers here:
Process.Exited event is not be called
(1个答案)
Process.Exited is never called, even though EnableRaisingEvents is set to true
(2个答案)
6年前关闭。
各位程序员,
我在这上面挠头。我正在使用以下方法启动一个过程。第一个是wkhtmltoimage.exe,然后是wkhtmltopdf.exe。一切都按预期工作,除了
只有wkhtmltoimage引发了该事件
只有wkhtmltopdf引发了该事件
都做到了
这个事件根本没有提出。
通过任务管理器和调试器,我可以验证
流程始终正确结束。
没有可重复的内容,每次运行都不同。这是我第一次尝试使用流程,也许我做错了什么。幸运的是,解决此问题对于我的应用程序并不重要。
(1个答案)
Process.Exited is never called, even though EnableRaisingEvents is set to true
(2个答案)
6年前关闭。
各位程序员,
我在这上面挠头。我正在使用以下方法启动一个过程。第一个是wkhtmltoimage.exe,然后是wkhtmltopdf.exe。一切都按预期工作,除了
Process_Exited
并不总是被调用。在我的程序的一次运行中,我多次按下相应的按钮,因此有所有可能的变化:只有wkhtmltoimage引发了该事件
只有wkhtmltopdf引发了该事件
都做到了
这个事件根本没有提出。
通过任务管理器和调试器,我可以验证
流程始终正确结束。
没有可重复的内容,每次运行都不同。这是我第一次尝试使用流程,也许我做错了什么。幸运的是,解决此问题对于我的应用程序并不重要。
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);
}
最佳答案
您确定在兴奋过程时您的程序仍在运行。
我怀疑您的程序在调用Process Exited之前是否已结束。
10-06 03:00