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

C#应用程序重启不调用程序Main(),c#,winforms,multithreading,C#,Winforms,Multithreading,我已经编写了一个适用于用户群的应用程序。我正在寻找当前用户注销的最佳方式。所以我使用了Application.Restart() 很快我发现代码工作不正常,Program.Main()不会再次调用。 我想知道我的登录表单加载方法不会执行(登录表单是从程序类调用的) 因此,如果您能让我知道我的错误和正确的解决方案,我将非常感激。 评论中列出了“VS2010 SP1中的Bug” 调用此方法后,应用程序不再在调试模式下运行,它不是由IDE生成的,所有断点都停止工作 编辑: 这是像log4net这样的东

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

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

评论中列出了“VS2010 SP1中的Bug”

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

编辑: 这是像log4net这样的东西真正有用的地方。它是一个非常简单的库,可以添加到项目中,并允许您将调试信息写入文件中,因此,即使下一个实例不是由IDE生成的,也不会获得断点,您仍然可以通过使用调试跟踪来验证它是否达到了预期效果。只是一个建议…

评论中列出了“VS2010 SP1中的Bug”

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

编辑:
这是像log4net这样的东西真正有用的地方。它是一个非常简单的库,可以添加到项目中,并允许您将调试信息写入文件中,因此,即使下一个实例不是由IDE生成的,也不会获得断点,您仍然可以通过使用调试跟踪来验证它是否达到了预期效果。只是一个建议…

一个新的进程被创建,它不是由IDE产生的

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

见相关帖子:


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

一个新的进程被创建,而不是由IDE生成的

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

见相关帖子:


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

Microsoft最近发布了一个解决方案,允许在
应用程序重新启动()后继续进行调试,该解决方案采用电动工具的形式:

子进程调试工具

Microsoft最近发布了一种解决方案,允许在
应用程序重新启动()后继续进行调试,其形式为电动工具:

子进程调试工具

你怎么知道Main不再被调用?@jgluie我在其中使用了断点,你可能需要附加到多线程应用程序上生成的新进程,断点仅在主线程上起作用afaik@ColeJohnson你可以在其他线程中设置断点。你如何知道Main不再被调用?@jgluie我在它中使用了断点。你可能需要附加到多线程应用程序上生成的新进程,断点仅在主线程上起作用afaik@ColeJohnson您可以在其他线程中设置断点。非常有用。正如您所说,调试模式是主要问题。谢谢你的帮助。正如您所说,调试模式是主要问题。谢谢你