0

可能重复:
Application.Exit

我有一个Application.Exit()无法运行的 Winforms 应用程序。

public Form1()
{       
   InitializeComponent();           
   path=parseINI();//Gets path from ini file           
} 

就我而言,Application.Exit()是从 parseINI 方法调用的,但它不起作用。是应用程序启动时调用它的问题吗?我把它放在加载表单后运行的另一种方法中,它在那里工作。我确实在我的 parseINI 方法中使用了 Environment.Exit,并且效果很好(尽管它用于控制台应用程序而不是 WinForms)。

编辑:我可能应该添加它作为检查,以确保正在读取的文件格式正确,如果是,则不调用它,否则程序退出。

4

3 回答 3

3

Application.Run这可能是因为在 Form ctor 执行时您还没有启动应用程序。

常见的启动代码模板如下所示:

Application.Run(new Form1());

如果是这种情况,请在 Application.Run 之前调用 Application.Exit。因此,在您调用 exit 之后,您实际上调用了 Run,因此应用程序运行。

于 2012-12-19T19:10:43.370 回答
1

在 parseINI() 中调用 Form.Close() 方法而不是 Application.Exit()

于 2012-12-19T19:08:52.340 回答
1

Environment.Exit()方法终止应用程序,关闭应用程序线程。确实,从文档中:

终止此进程并为底层操作系统提供指定的退出代码。

为什么你必须从你的parseINI方法中关闭你的应用程序?

无论如何,方法调用对Application.Exit()您不起作用,因为阅读MSDN 页面

此方法停止所有线程上所有正在运行的消息循环并关闭应用程序的所有窗口。此方法不会强制应用程序退出。Exit 方法通常在消息循环中调用,并强制 Run 返回。要仅退出当前线程的消息循环,请调用 ExitThread。

然后,您可以将此行添加到您的构造函数中,以“运行”应用程序,允许您使用Application.Exit()

Application.Run(new YourForm());

你可以在这里找到一个有趣的讨论:http: //geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx

阅读此答案以了解详细信息。此外,请阅读这个Environment.Exit()重要的 SO 问题,以更好地理解和之间的区别Application.Exit()

于 2012-12-19T19:22:26.787 回答