私は最近学校を卒業し、プログラマーとして最初の仕事をしています。アプリケーション タイムアウト タイマーがアプリケーションを閉じるときに発生するバグがユーザーから報告されました。私はそれを絞り込んだと確信していますが、元のプログラマーがなぜこれを行ったのか、それが優れたコーディング慣行である場合、興味があります。メイン フォームが閉じた後に発生するため、クロージング後のシステム エラーが発生しているため、例外ログ入力は取得されません。
timeoutTimer_tick ハンドラーの終了機能は、次のことを行います。
For iCount As Int16 = Application.OpenForms.Count - 1 To 0 Step -1
Try
Application.OpenForms(iCount).Close()
Catch
End Try
Next
Try
Application.Exit()
Catch ex As Exception
End Try
プログラムは、メイン フォームが閉じたときにアプリケーション プロパティを閉じるように設定されています (開いているすべてのフォームが閉じられるわけではありません)。これは、各フォームをループして個別に閉じてから Application.Exit() を呼び出す理由を不思議に思います。
私たちのエラーは、開いているすべてのフォームが閉じられた後の Application.Exit 呼び出しが原因であると確信しています。ループ中にメイン フォームが閉じられたため、メイン フォームが表示されず、エラーがスローされます。両方ではなく、どちらか一方を使用する必要があるように感じます。
入力やアドバイスはありますか?どちらが優れているか、またはどちらかが優れています (または、このコードがエラーなしで機能するはずであり、私は単に間違っています)。
ありがとう