我有一个.Net windows表单应用程序,其中很多变量在Main_Load事件中初始化,我有一种情况,我希望我的数据库被重新查询,所有变量设置为null并重新初始化(基本上是表单100%从头开始重新加载),但是我以这样的方式编写了我的Main-Load(我的错),这样做并不容易......
我知道我可以通过简单地调用Application.Restart
来获得完全我想要的东西并且它可以完美地 ,但我不确定这是不是良好的编程习惯或认为非常糟糕。
在此上下文中使用Application.Restart
是否会遇到任何问题?
答案 0 :(得分:7)
调试不友好,但它并没有什么问题。它与终止应用程序并再次启动它完全相同。
您可以通过简单地创建主表单的新实例并关闭旧表单来避免它。但是,这确实要求您阻止程序退出。代码is here。
答案 1 :(得分:2)
这不是方法不起作用;相反,很多时候程序员忘记了他们在代码中放了一些东西会阻止应用程序自动关闭或启动。
请按照Thread
进行操作您也可以使用
完成工作 System.Diagnostics.Process.Start(Application.ExecutablePath);
Application.Exit();
答案 2 :(得分:0)
要直接回答标题中的问题,是重新启动应用程序以重新初始化变量是不好的做法。
在某些情况下,重新启动应用程序很有用(例如自我更新),但我认为重新启动以模仿ReInitialize()
方法是不好的。
答案 3 :(得分:0)
我遇到了这个问题。
当用户注销时,我确实需要重新启动大型Winforms应用程序,以确保清除所有缓存(我的)数据。
通过将 Application.restart()添加到应用关闭事件中解决了我的问题。
这适用于VS环境和运行EXE时的工作
如果要查找该事件,请选择主项目属性,然后从“应用程序”(“侧面”选项卡)中选择底部的“查看应用程序事件”。
我的猜测是,这是有效的,因为它在结束过程中很晚。希望这有助于某人,更重要的是,它可以继续发挥作用。