我有一个Windows窗体,我将报告导出为PDF格式。
生成报告后,我希望应用程序完全终止。我添加了Application.Exit()
子句,但是这有时会在导出仍然发生时关闭进程。
因此,我想仅在导出完成时关闭应用程序。
我尝试了以下内容:
while(true)
{
if (Process.GetCurrentProcess().WaitForInputIdle())
{
Application.Exit();
}
}
以及:
while(true)
{
if (Process.GetCurrentProcess().Responding)
{
Application.Exit();
}
}
但是没有工作 - 在导出完成之前,应用程序有时仍会关闭。
我做错了什么?
答案 0 :(得分:2)
您可以开始在另一个进程中导出并等待它完成(查看相关帖子:Wait till a process ends)。
如果您不想这样,您可以检查导出完成的文件是否存在以及是否已锁定(请查看Wait Until File Is Completely Written)。
答案 1 :(得分:0)
问题在于,如果应用程序旨在响应用户交互,则两种方式都会关闭应用程序,即使它仍然有效。
也许您应该监控应用程序的输出?即:如果存在PDF文件,则完成该过程。或者更确切地说:如果PDF文件存在且未被修改15秒或其他东西,请退出该应用程序。