13

我有一个 .Net windows 窗体应用程序,其中在 Main_Load 事件中初始化了很多变量,我有一种情况,我希望重新查询我的数据库并将所有变量设置为 null 并重新初始化(基本上是 100% 的形式从一开始就重新加载),但是我以这样的方式(我的错)编写了我的 Main-Load ,这并不容易做到......

我知道我可以通过简单的调用得到我想要Application.Restart的东西,而且效果很好,但我不确定这是好的编程实践还是被认为真的很糟糕。

Application.Restart在这种情况下使用可能会遇到任何问题吗?

4

4 回答 4

7

对调试不友好,但它并没有什么真正的问题。这与终止应用程序并重新启动它完全相同。

您可以通过简单地创建主窗体的新实例并关闭旧实例来避免它。但是,这确实需要您阻止程序退出。代码在这里

于 2012-10-19T20:02:20.170 回答
2

不是方法不行;相反,很多时候程序员忘记了他们在他们的代码中添加了一些东西来阻止应用程序自动关闭或启动。

请关注此主题

你也可以用

 System.Diagnostics.Process.Start(Application.ExecutablePath);
 Application.Exit();
于 2012-10-19T19:47:33.193 回答
0

要直接回答标题中的问题,是的,重新启动应用程序以重新初始化变量是不好的做法。

在某些情况下,重新启动应用程序很有用(例如自我更新),但ReInitialize()在我看来,重新启动以模仿方法是不好的。

于 2012-10-19T20:27:30.193 回答
0

我有这个问题。

当用户注销时,我真的需要重新启动一个大型 Winforms 应用程序,以确保清除所有缓存的(我的)数据。

通过将Application.restart()添加到Application Shutdown Event解决了我的问题。

这适用于 VS 环境和运行 EXE 时

如果您想查找该事件,请选择您的主要项目属性,然后从应用程序(侧选项卡)中选择底部的查看应用程序事件。

我的猜测是这行得通,因为它在关闭过程中已经很晚了。希望这对某人有所帮助,更重要的是,它继续有效。

于 2017-09-19T16:15:42.590 回答