1

我已经编写了一个适用于用户群的应用程序。我正在寻找用于当前用户注销的最佳方式。所以我用过 Application.Restart(); 不久我发现代码不能正常工作,Program.Main()也没有再回调。我想知道我的登录表单加载方法不会执行(登录表单正在从程序类调用)。

因此,如果您让我知道我的错误和正确的解决方案,我将非常感激。

4

3 回答 3

6

http://msdn.microsoft.com/en-us/library/system.windows.forms.application.restart.aspx

评论列出“VS2010 SP1 中的错误”

调用此方法后,应用程序不再在调试模式下运行,它不是由 IDE 生成的,并且所有断点都停止运行。

编辑: 这是 log4net 之类的东西真正有用的地方。这是一个非常简单的库,可以添加到您的项目中,并且可以让您将调试信息写到文件中,因此,即使下一个实例不是由 IDE 生成并且不会获得断点,您仍然可以进行一些验证,以确保它达到了什么您期望通过使用调试跟踪。只是一个建议...

于 2012-05-14T15:53:44.130 回答
2

A new process gets created, and it's not spawned by the IDE.

A breakpoint is not a valid way to test if Main is entered again.

See somewhat related post: Does Application.Restart() creates new process for application or no?

If you'd like, you could write to a file or some other simple test in Main just to prove to yourself that it is entered.

于 2012-05-14T15:54:52.277 回答
0

微软最近发布了一个解决方案,允许在 之后继续调试Application.Restart(),以 Power Tool 的形式:

子进程调试电动工具

于 2015-04-16T17:53:57.763 回答