0
私は、MySQLデータベースで操作を行うBackgroundWorkerを持つVB.NETアプリケーションを持っています。 BGWがクラッシュした場合は、ログを保存してアプリケーションを再起動します。このようなことをするのは大丈夫ですか?BackgroundWorkerからアプリケーションを再起動しても問題ありませんか?
Catch ex As Exception
WriteRTBLog(ex.Message, Color.Red)
WriteRTBLog(ex.StackTrace, Color.DarkRed)
Application.Restart()
End Try
また、アプリケーションを再起動すると、FormClosingイベントが発生しますか? そのイベントを使用して終了する前にログを保存しています。
私がデータをぶち壊していて、SQL Serverが私を爆破させたら、盲目的に続けようとすると、私ができる最悪のことに思えます。例外が何を意味するのかわからず、回復方法がわからなければ、死ぬでしょう。あなたが回復することができれば、そうしてください。アプリケーション全体を再起動すると奇妙な方法で回復するようです。 – Will
はい、FormClosingイベントが発生します。このコードがDoWorkイベントハンドラにある場合、間違ったスレッドでは、それは良くありません。いつも再起動して直ちにクラッシュするアプリで無力に見ているユーザーについては、何もありません。マシンを再起動するだけです。 RTBがあれば、それはもはや存在しません。これをしない理由の多く。 –
アプリケーションは単独で動作し、誰もそれを監視しません。私は、アプリケーション自体が回復する必要があります。アプリケーションは何の問題もなく1年しか働きませんが、クラッシュがループに入り、誰かに気付くまで約3日間間違っていました。私は手動でそれを閉じて、何も起こっていないように再びokを働かせます。 –