0

我有一个 Windows 窗体,其中有一个导出为 PDF 格式的报告。

生成报告后,我想让应用程序完全终止。我添加了一个Application.Exit()子句,但是这有时会在导出仍在进行时关闭进程。

因此,我只想在导出完成后关闭应用程序。

我尝试了以下方法:

   while(true) 
   {
    if (Process.GetCurrentProcess().WaitForInputIdle())
    {
        Application.Exit();
    }
   }

并且:

while(true) 
{
    if (Process.GetCurrentProcess().Responding)
    {
        Application.Exit();
    }
}

然而,没有任何工作 - 应用程序有时仍会在导出完成之前关闭。

我究竟做错了什么?

4

2 回答 2

2

您可以在另一个进程中开始导出并等待它完成(查看相关帖子:等待进程结束)。

如果您不想这样,您可以检查导出完成的文件是否存在以及它是否被锁定(请查看Wait Until File Is Completely Written)。

于 2013-10-30T09:13:03.777 回答
0

问题是,如果应用程序设计为响应用户交互,那么即使应用程序仍在工作,两种方式都会关闭应用程序。

也许您应该监视应用程序的输出?即:如果存在 PDF 文件,则该过程完成。或者更确切地说:如果 PDF 文件存在并且 15 秒内没有被修改过,请退出应用程序。

于 2013-10-30T09:02:14.043 回答