我有一个.Net windows表单应用程序,其中许多变量在Main_Load事件中被初始化,我需要重新查询数据库,并且所有vars设置为null和重新初始化(基本上从一开始就100%重新加载表单),但是我编写主加载的方式(我的错)并不容易.
我知道,只要简单地调用Application.Restart,我就能得到我想要的结果,而且效果非常好,但我不确定这是一个好的编程实践,还是被认为是非常糟糕的编程实践。
在这种情况下使用Application.Restart可能会遇到什么问题吗?
发布于 2012-10-19 20:02:20
调试并不友好,但它并没有什么问题。这与终止应用程序和重新启动应用程序完全一样。
您可以通过简单地创建主窗体的一个新实例并关闭旧的实例来避免这种情况。然而,这确实要求您阻止程序退出。代码is here。
发布于 2012-10-19 19:47:33
这并不是因为这个方法不起作用,而是很多时候程序员忘记了,他们在代码中放置了一些东西,可以阻止应用程序自动关闭或启动。
请跟着这个Thread
你也可以用
System.Diagnostics.Process.Start(Application.ExecutablePath);
Application.Exit();发布于 2012-10-19 20:27:30
要直接回答标题中的问题,是的,重新启动应用程序来重新初始化变量是错误的做法。
在某些情况下,重新启动应用程序是有用的(例如,自我更新),但在我看来,重新开始模拟ReInitialize()方法是不好的。
https://stackoverflow.com/questions/12981402
复制相似问题