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

別のプロセスでエクスポートを開始し、それが終了するのを待つことができます (関連する投稿をチェックしてください:プロセスが終了するまで待つ)。

そうしたくない場合は、エクスポート先のファイルが存在するかどうか、およびそのファイルがロックされているかどうかを確認できます (ファイルが完全に書き込まれるまで待機する を確認してください)。

于 2013-10-30T09:13:03.777 に答える
0

問題は、アプリケーションがユーザーの操作に応答するように設計されている場合、どちらの方法でも、アプリケーションがまだ動作していてもアプリケーションが閉じてしまうことです。

おそらく、アプリケーションの出力を監視する必要がありますか? つまり: PDF ファイルが存在する場合、プロセスは完了です。むしろ、PDF ファイルが存在し、15 秒ほど変更されていない場合は、アプリケーションを終了します。

于 2013-10-30T09:02:14.043 に答える