C#应用程序重启不会调用程序Main()

时间:2012-05-14 15:48:24

标签: c# winforms multithreading

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

所以如果你让我知道我的错误和正确的解决方案,我真的很感激。

3 个答案:

答案 0 :(得分:6)

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

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

  

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

编辑: 这就像log4net这样的东西真的很有帮助。这是一个非常简单的库,可以添加到您的项目中,并允许您将调试信息写入文件,因此,即使下一个实例未由IDE生成并且不会获得断点,您仍然可以进行一些验证,它会触及什么你期望通过使用Debug跟踪。只是一个建议......

答案 1 :(得分:2)

创建一个新进程,它不是由IDE生成的。

断点不是测试是否再次输入Main的有效方法。

查看相关帖子: Does Application.Restart() creates new process for application or no?

如果您愿意,可以在Main中写一个文件或其他简单的测试,只是为了向自己证明它已被输入。

答案 2 :(得分:0)

Microsoft最近发布了一个解决方案,允许在Application.Restart()之后以电动工具的形式继续调试:

子进程调试电动工具