我有一个VB.NET应用程序,它有一个BackgroundWorker,可以用MySQL数据库进行操作;如果BGW崩溃我想保存日志并重启应用程序;所以可以做这样的事情吗?
Catch ex As Exception
WriteRTBLog(ex.Message, Color.Red)
WriteRTBLog(ex.StackTrace, Color.DarkRed)
Application.Restart()
End Try
此外,如果我重新启动应用程序,将引发FormClosing事件? 因为我在关闭之前使用该事件保存日志。
答案 0 :(得分:0)
如果调用Application.Restart,则会从同一个线程中调出FormClosing事件。因此,如果您正在访问任何UI元素,则需要调用Form.Invoke以安全地访问其属性。
要回答你的问题,是的,会调用FormClosing。另外,我会将这些WriteRTBLog调用包装在自己的Try / Catch中,这样如果它们失败,你的Application.Restart调用仍然会被执行。