我有一个条件,我需要关闭应用程序,所以我设置一个certian标志时调用this.Dispose().
起初我认为在调用this.Dispose()之后调用函数是一个问题,因此我将代码移动到最后调用的东西,但我仍然得到"ArgumentException未处理""参数无效".在Application.Run(new myApp();行.
我究竟做错了什么?我一路上都错过了什么吗?或者可能有更好的方法来关闭应用程序?
尝试使用Application.Exit()
退出应用程序.
使用时Application.Run(new MyForm());
,使用表单对象作为主窗体在线程上创建消息循环.它尝试将来自应用程序的Win32消息传递给各自的对象.但是,当您调用Dispose()
表单对象时,尚未退出消息循环.当它尝试将下一条消息传递给您的表单对象时,它会失败,因为它已经处理并抛出异常.您应该要求关闭表单(通过调用Close
表单),然后要求表单处理事件,如果已完成,则在之后退出消息循环.另一种方式(更直接的方式)是通过调用来关闭线程上的消息循环,Application.Exit()
这将导致所有相关的表单被关闭.