gpt4 book ai didi

c# - Application.Run 抛出 ArgumentException 未处理

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:58 25 4
gpt4 key购买 nike

我有一个需要关闭应用程序的情况,所以我在设置 certian 标志时调用 this.Dispose ()。

一开始我以为是我调用this.Dispose()后调用函数的问题,所以我把代码移到最后调用的地方,但我仍然得到一个“ArgumentException was unhandled”“Parameter is not valid” ”在 Application.Run (new myApp(); 行。

我做错了什么?一路上我错过了什么吗?或者也许有更好的方法来关闭应用程序?

最佳答案

尝试使用 Application.Exit() 退出应用程序。

当您使用 Application.Run(new MyForm()); 时,会在使用表单对象作为主表单的线程上创建一个消息循环。它尝试将进入应用程序的 Win32 消息传递给它们各自的对象。但是,当您在表单对象上调用 Dispose() 时,您还没有退出消息循环。当它尝试将下一条消息传递给您的表单对象时,它会失败,因为它已经被释放并抛出异常。您应该请求关闭表单(通过调用表单上的 Close),然后请求表单处理事件,如果完成,则退出消息循环。另一种方法(更直接的方法)是通过调用 Application.Exit() 来完全关闭线程上的消息循环,这将导致所有相关表单关闭。

关于c# - Application.Run 抛出 ArgumentException 未处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/389551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com